在减去两个时间戳时,使用new Date()
和new Date().getTime()
有什么不同?(test script on jsFiddle)
以下两种情况都会产生相同的结果:
var prev1 = new Date();
setTimeout(function() {
var curr1 = new Date();
var diff1 = curr1 - prev1;
}, 500);
var prev2 = new Date().getTime();
setTimeout(function() {
var curr2 = new Date().getTime();
var diff2 = curr2 - prev2;
}, 500);
有什么理由让我更喜欢其中一个吗?
发布于 2013-03-14 12:31:43
我知道您的问题中没有这个问题,但您可能希望考虑最快的Date.now()
,因为您不需要实例化新的Date
对象,请参阅以下内容以比较不同的版本:http://jsperf.com/date-now-vs-new-date-gettime/8
上面的链接显示使用new Date()
比使用(new Date()).getTime()
更快,但Date.now()
比所有这些都要快。
浏览器对Date.now()
的支持也没那么差(IE9+):
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/now
发布于 2013-03-14 12:31:52
当您创建一个新的Date()对象时,它会自动初始化为当前时间。
来自W3Schools:
new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
getTime()函数只返回该时间。
来自W3Schools:
Date.getTime() // method returns the number of milliseconds between midnight of January 1, 1970 and the specified date.
http://www.w3schools.com/jsref/jsref_obj_date.asp
发布于 2013-03-14 12:42:55
日期算法将日期转换为纪元时间(自1970年1月1日以来的毫秒),这就是这两个代码片段在功能上相同的原因。
至于哪个更快,贾蒙德·弗格森的答案是正确的。
https://stackoverflow.com/questions/15401211
复制相似问题