Javascript “新日期(d)”与“新日期(+d)”之间的差异
我在代码中遇到了一个问题 两者的区别是什么Javascript “新日期(d)”与“新日期(+d)”之间的差异,javascript,date,Javascript,Date,我在代码中遇到了一个问题 两者的区别是什么 new Date(d) 及 其中d=新日期 第一个返回日期字符串 Tue Jan 07 2014 11:37:28 GMT+0000 (locale) 第二个应该以毫秒为单位返回unix时间戳 1389091048652 如果您记录它们,但第一个仍然是日期对象,而第二个只是数字 两者都是有效的,可以传递回新的日期 第一个返回日期字符串 Tue Jan 07 2014 11:37:28 GMT+0000 (locale) 第二个应该以毫秒为
new Date(d)
及
其中d=新日期 第一个返回日期字符串
Tue Jan 07 2014 11:37:28 GMT+0000 (locale)
第二个应该以毫秒为单位返回unix时间戳
1389091048652
如果您记录它们,但第一个仍然是日期对象,而第二个只是数字
两者都是有效的,可以传递回新的日期
第一个返回日期字符串
Tue Jan 07 2014 11:37:28 GMT+0000 (locale)
第二个应该以毫秒为单位返回unix时间戳
1389091048652
如果您记录它们,但第一个仍然是日期对象,而第二个只是数字
两者都是有效的,可以传递回新的日期
两者的区别在于所执行的操作:
new Date(date)
通过解析日期对象的字符串表示形式来创建新的日期对象
根据通过将日期对象转换为数字而获得的时间戳创建新的日期对象
new Date(date.valueOf())
根据从日期对象获得的时间戳创建新的日期对象
效果是一样的,但这似乎表明第三种情况在我测试的所有浏览器上都是最快的。如果测试用例由于浏览器优化而出错,请通过修复它们并在此处进行评论来帮助 两者的区别在于所执行的操作:
new Date(date)
通过解析日期对象的字符串表示形式来创建新的日期对象
根据通过将日期对象转换为数字而获得的时间戳创建新的日期对象
new Date(date.valueOf())
根据从日期对象获得的时间戳创建新的日期对象
效果是一样的,但这似乎表明第三种情况在我测试的所有浏览器上都是最快的。如果测试用例由于浏览器优化而出错,请通过修复它们并在此处进行评论来帮助 +d将日期转换为时间戳。+d将日期转换为时间戳。JS日期的数字表示形式不是unix时间戳。秒vs毫秒。@Tomalak-这是一个时间戳,以毫秒为单位,来自epochCorrect。它不是unix时间戳,根据定义是秒。JS日期的数字表示不是unix时间戳。秒vs毫秒。@Tomalak-这是一个时间戳,以毫秒为单位,来自epochCorrect。它不是unix时间戳,根据定义是秒。