1、时间戳和时间对象可以灵活转变:
let n = new Date() // 返回的是当前时间对应的国际时间
let nt =n.getTime()
let n2 =new Date(nt)
console.log(n,nt,n2)
输出为当前时间和时间戳:
Date 2018-12-06T06:41:56.217Z
1544078516217
Date 2018-12-06T06:41:56.217Z
2、时间转换的字符串参数格式不同,返回的时间格式有时会不同
// 时分秒如果有参数,返回的是参数中的本地时间对应的国际时间。
let i = new Date('2018-12-06 0:0:0')
let j = new Date('2018/12/06 0:0:0') 输出 :Date 2018-12-05T16:00:00.000Z
Date 2018-12-05T16:00:00.000Z
// 时分秒如果没有参数, ‘-’ 符号的返回的是国际标准时间0点,‘/’符号返回的是本地时间0点对应的国际时间
let i2 = new Date('2018-12-06')
let j2= new Date('2018/12/06')
console.log(i2,j2) 输出:Date 2018-12-06T00:00:00.000Z
Date 2018-12-05T16:00:00.000Z
// 时间戳对比确认
console.log(i.getTime(),j.getTime(),i2.getTime(),j2.getTime())
输出:1544025600000 1544025600000 1544054400000 1544025600000
console.log(j == j2)
输出: false
3、非字符串参数,记得月份是0-11:
let ii = new Date(2018,12,6,0,0,0)
let ii2 = new Date(2018,12,6)
console.log(ii,ii2)
输出的是本地时间0时对应的国际时间:
Date 2019-01-05T16:00:00.000Z
Date 2019-01-05T16:00:00.000Z
4、参数为时间戳,输出的是国际时间
let i1 =new Date('2018-12-06 0:0:0')
let i2 =new Date('2018-12-06 0:0:0').getTime()
let i3 =new Date(i2) console.log(i1,i2,i3)
输出:
Date 2018-12-05T16:00:00.000Z
1544025600000
Date 2018-12-05T16:00:00.000Z
总结:慎用 2018-12-06 格式的参数,传入Date的参数大都代表本地时间,输出的值都是对应的国际时间
附加控制台返回值图:
友情链接: https://www.cnblogs.com/hjsblogs/p/5842717.html 这个大神说得很具体。