ISO8601是国际标准化组织的日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》
    合并日期和时间表示时,要在时间前面加一大写字母T,如要表示东八区时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:0020040503T173008+08

    1. let d = new Date()
    2. // Thu Sep 02 2021 21:38:47 GMT+0800 (中国标准时间)
    3. d = d.toISOString()
    4. // "2021-09-02T13:38:47.911Z"

    toISOString()转换为ISO8601格式,最后的Z代表零时区

    一般不用Date()构造函数里的方法来处理时间
    moment.js是用来处理时间的库,但是体积太大了,不推荐使用
    image.png

    推荐使用day.js
    image.png
    安装

    1. yarn add dayjs

    判断日期是不是今天,用JS提供的api写

    1. beautify(string:string) {
    2. const d = new Date(Date.parse(string))
    3. const y = d.getFullYear()
    4. const m = d.getMonth()
    5. const dd = d.getDate()
    6. const now = new Date()
    7. if (now.getFullYear() === y && now.getMonth() === m && now.getDate() === dd) {
    8. return '今天'
    9. } else {
    10. return string
    11. }
    12. }

    使用dayjs的写法

    1. import dayjs from 'dayjs'
    2. beautify(string:string) {
    3. const now = dayjs()
    4. const date = dayjs(string)
    5. if(date.isSame(now, 'day')) {
    6. return '今天'
    7. } else if(date.isSame(now.subtract(1,'day'),'day')){
    8. return '昨天'
    9. }else if(date.isSame(now.subtract(2,'day'),'day')){
    10. return '前天'
    11. }else if(date.isSame(now, 'year')){
    12. return date.format('M月D日')
    13. }else {
    14. return date.format('YYYY年M月D日')
    15. }
    16. }

    api的使用参看文档即可
    还有一种传统的计算昨天的方法

    1. cont now = new Date()
    2. // ...
    3. if (dayjs(string).isSame(now.valueOf() - 86400*1000, 'day')) {
    4. return '昨天'
    5. }
    6. // ...