美文网首页
ISO 8601和dayjs

ISO 8601和dayjs

作者: 浪味仙儿啊 | 来源:发表于2020-07-21 20:44 被阅读0次

    ISO 8601

    是国际标准的日期和时间的表示方法

    日期和时间的组合表示法
    合并表示时,要在时间前面加大写字母T,如要表示东八区时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:00或20040503T173008+08。
    如何得到一个ISO 8601
    使用toISOString()

    ISO8601
    "2020-07-21T10:54:28.152Z"是标准时间,0时区

    dayjs

    但是我们一般不使用Date,因为有更好用的
    用Moment.js或day.js,但Moment.js太大了(有16k),更多用day.js(是Moment.js的缩小版,有同样强大的API,只有2k)

    安装
    npm install dayjsyarn add dayjs

    使用
    import dayjs from 'dayjs';

    let oneDay = 86400 * 1000;//js里一天是86400毫秒
    switch(string: string) {
          let day = dayjs(string);
          let now = new Date();
          if (day.isSame(now, 'day')) {
            return '今天';
          } else if (day.isSame(now.valueOf() - oneDay, 'day')) {
            return '昨天';
          } else if (day.isSame(now.valueOf() - oneDay * 2, 'day')) {
            return '前天';
          } else if (day.isSame(now, 'year')) {
            return day.format('M月DD日');
          } else {
            return day.format('YYYY年MM月DD日');
          }
        }
    

    我们想让当前日期显示为今天,那么就可以使用dayjs的API"isSame",将day和now的'day'做比较,相同即为今天,那么想要让当前日期的前一天显示为昨天呢,字符串是不支持加减的,就需要变成数字,取值后再相减
    dayjs(string).valueOf()

    相关文章

      网友评论

          本文标题:ISO 8601和dayjs

          本文链接:https://www.haomeiwen.com/subject/ormikktx.html