记录一下刚学习到的 ISO8601 和用 dayjs 的具体日期设置

1,160 阅读1分钟

1. 初步理解 ISO8601

  • 任何一个时间通过 toISOString() 都可以得到一个标准 ISO 格式的时间,精确到毫秒( .229Z 中间的 229 就是毫秒)
  • 然后 Date.parse() 之后可以得到一串数字(注意:这串数字没有市区的概念)
  • 把得到的一串数字传给 new Date() 即可得到新的日期对象
  • 任何时间都能用 ISO8601 表示清楚

image.png

2. 使用:day.js(不用 moment.js 是因为体积太大,day.js 的 api 与其基本一样,但体积小很多)

以下为一个示例的使用步骤

  • 第一步

yarn add dayjs

  • 第二步
import dayjs from 'dayjs';

image.png

  • 第三步 注:一天是86400秒,因为 js 里单位是毫秒,需要乘1000。
const oneDay = 86400 * 1000;

image.png

  • 第四步:功能实现,显示“前天”、“昨天”、“今天”,非这个时间范围的显示具体年月日,当年显示月日,具体日期格式可在文档的 format 中查询到
const oneDay = 86400 * 1000;
...
@Component({})
...
export default class Xxxxxx extends Vue{
...
    beautify(string: string) {
      const day = dayjs(string);
      const now = dayjs();
      if (day.isSame(now, 'day')) {
        return '今天';
      } else if (day.isSame(now.subtract(1,'day'),'day')) {
        return '昨天';
      } else if(day.isSame(now.subtract(2,'day'),'day')){
        return '前天';
      } else if(day.isSame(now,'year')){
        return day.format('MM月D日')
      }else{
        return day.format('YYYY年MM月D日')
      }
    }
}

image.png