1. 初步理解 ISO8601
- 任何一个时间通过 toISOString() 都可以得到一个标准 ISO 格式的时间,精确到毫秒( .229Z 中间的 229 就是毫秒)
- 然后 Date.parse() 之后可以得到一串数字(注意:这串数字没有市区的概念)
- 把得到的一串数字传给 new Date() 即可得到新的日期对象
- 任何时间都能用 ISO8601 表示清楚
2. 使用:day.js(不用 moment.js 是因为体积太大,day.js 的 api 与其基本一样,但体积小很多)
- 文档: day.js.org/ (中文文档:dayjs.gitee.io/zh-CN/ )
以下为一个示例的使用步骤
- 第一步
yarn add dayjs
- 第二步
import dayjs from 'dayjs';
- 第三步 注:一天是86400秒,因为 js 里单位是毫秒,需要乘1000。
const oneDay = 86400 * 1000;
- 第四步:功能实现,显示“前天”、“昨天”、“今天”,非这个时间范围的显示具体年月日,当年显示月日,具体日期格式可在文档的 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日')
}
}
}