一、ISO8601
一种时间和日期的表示方法 百度百科: baike.baidu.com/item/ISO%20…
示例:
- 年为4位数,月为2位数,月中的日为2位数,例如2004年5月3日可写成2004-05-03或20040503。
- 日期和时间合并表示时,要在时间前面加一大写字母 T,如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:00或20040503T173008+08。
二、js 常用操作时间的方法
1 new Date()
- 默认为获取当前时间
let a = new Date()
console.log(a)
// Fri Jul 08 2022 11:25:51 GMT+0800 (中国标准时间) {}
2 .toISOString ()
- 可以将获取到的时间转化为Iso8601格式
a.toISOString() //'2022-07-08T03:25:51.708Z'
3 Date.parse()
- 解析一个表示某个日期的字符串,并返回从 1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的 UTC 时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为 NaN。
4 new Date()
- 将时间戳还原为时间
5 .getHours()
- 返回一个指定的日期对象的小时
Date.parse('2022-07-08T03:25:51.708Z') //1657250751708
new Date(1657250751708)
//Fri Jul 08 2022 11:25:51 GMT+0800 (中国标准时间) {}
new Date(1657250751708).getHours() // 11
三、moment.js 和 day.js
两个 js 时间类库,moment.js 体积相对较大,day.js是moment.js 的精简版。
- day.js 文档 https://dayjs.gitee.io/
dayjs()
.startOf('month')
.add(1, 'day')
.set('year', 2018)
.format('YYYY-MM-DD HH:mm:ss')
1. 用法示例
- 直接调用 dayjs() 将返回一个包含当前日期和时间的 Day.js 对象。等同于 ****dayjs(new Date()) 的调用。
let now = dayjs()
new Date(1657250751708)//Fri Jul 08 2022 11:25:51 GMT+0800 (中国标准时间) {}
dayjs(1657250751708)//Fri Jul 08 2022 11:25:51 GMT+0800 (中国标准时间) {}
dayjs.format()根据传入的占位符返回格式化后的日期。将字符放在方括号中,即可原样返回而不被格式化替换 (例如, [MM])。
dayjs('2019-01-25').format('DD/MM/YYYY') // '25/01/2019'
isSame这表示 Day.js 对象是否和另一个提供的日期时间相同。
dayjs().isSame(dayjs('2011-01-01')) // 默认毫秒