首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Date() vs Date().getTime()

Date() vs Date().getTime()
EN

Stack Overflow用户
提问于 2013-03-14 12:27:23
回答 3查看 98.8K关注 0票数 21

在减去两个时间戳时,使用new Date()new Date().getTime()有什么不同?(test script on jsFiddle)

以下两种情况都会产生相同的结果:

代码语言:javascript
运行
复制
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);

有什么理由让我更喜欢其中一个吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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

票数 61
EN

Stack Overflow用户

发布于 2013-03-14 12:31:52

当您创建一个新的Date()对象时,它会自动初始化为当前时间。

来自W3Schools:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
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

票数 4
EN

Stack Overflow用户

发布于 2013-03-14 12:42:55

日期算法将日期转换为纪元时间(自1970年1月1日以来的毫秒),这就是这两个代码片段在功能上相同的原因。

至于哪个更快,贾蒙德·弗格森的答案是正确的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15401211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档