默认情况下,Day.js 会把时间解析成本地时间。
如果想使用 UTC 时间,您可以调用 dayjs.utc() 而不是 dayjs()。
在 UTC 模式下,所有显示方法将会显示 UTC 时间而非本地时间。
这依赖 UTC 插件,才能正常运行
dayjs.extend(utc)
// 默认是当地时间
dayjs().format() //2019-03-06T08:00:00+08:00
// UTC 时间
dayjs.utc().format() // 2019-03-06T00:00:00Z
本地时间转换为UTC
dayjs().utc().format()
// 获取UTC时间'2023-07-09T01:22:22Z'
dayjs.utc().format()
// 获取UTC时间'2023-07-09T01:22:22Z'
// 本地时间是02:00:00,时区是8,所以UTC是昨天18:00:00
dayjs('2023-07-09 02:00:00').utc().format('YYYY-MM-DD HH:mm:ss')
// '2023-07-08 18:00:00'
// UTC转换为UTC时间
dayjs.utc('2023-07-09 02:00:00').format('YYYY-MM-DD HH:mm:ss')
// '2023-07-09 02:00:00'
UTC转换为本地时间
假设UTC时间1688896817000
// UTC转换本地时间
dayjs(1688896817000).format('YYYY-MM-DD HH:mm:ss')
// '2023-07-09 18:00:17'
// 毫秒数默认认为是本地,本地比UTC快,所以转换本地的就快
// UTC转换为UTC时间
dayjs.utc(1688896817000).format('YYYY-MM-DD HH:mm:ss')
// '2023-07-09 10:00:17'
设置UTC为当天结束日时间
// 正确用法
dayjs().utc().endOf('day').format('YYYY-MM-DD HH:mm:ss')
'2023-07-09 23:59:59'
// 错误用法
dayjs().endOf('day').utc().format('YYYY-MM-DD HH:mm:ss')
'2023-07-09 15:59:59'