为什么这种获取两个日期之间差异的方法不起作用?

use*_*092 0 javascript

我试图测试是否已经过了一段时间.我用javascript.

两个示例都使用此变量:

var delete_after = 2 /*minutes*/ * 60 /*seconds*/ * 1000/*miliseconds*/; // [miliseconds]
Run Code Online (Sandbox Code Playgroud)

这有效:

var now = new Date();
var now_t = now.getTime();
var then = new Date(x.time); // x.time is string with a time
var then_t = then.getTime();//).getTime();
if (now_t - then_t > delete_after) {
    alert("deleted");
}
Run Code Online (Sandbox Code Playgroud)

这不是:

if (Date().getTime() - Date(x.time).getTime() > delete_after) {
    alert("deleted");
}
Run Code Online (Sandbox Code Playgroud)

我相信他们是等同的,但他们不是.我检查了优先级,最后看来我必须调用new来创建变量.似乎无法调用(new Date().getTime()).拜托,你会这么好解释为什么不能写第二种方式吗?

Lig*_*ica 5

  • Date().getTime()

    是不一样的

    (new Date()).getTime()


  • Date(x.time).getTime()

    是不一样的

    (new Date(x.time)).getTime()