我正在尝试测试是否已经过了一段时间。我用javascript。
两个示例都使用此变量:
var delete_after = 2 /*minutes*/ * 60 /*seconds*/ * 1000/*miliseconds*/; // [miliseconds]
这有效:
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");
}
这不是:
if (Date().getTime() - Date(x.time).getTime() > delete_after) {
alert("deleted");
}
我相信他们是相同的,但事实并非如此。我检查了优先级,最后看来我必须调用new来创建变量。似乎无法调用(new Date()。getTime())。拜托,你会这么好解释为什么不能写第二种方式吗?
答案 0 :(得分:5)
Date().getTime()
与
不同 (new Date()).getTime()
Date(x.time).getTime()
与
不同 (new Date(x.time)).getTime()
答案 1 :(得分:3)
好吧,如果你想简单地做,那就这样做:
if ((new Date()).getTime() - (new Date(x.time)).getTime() > delete_after) {
alert("deleted");
}
您的示例不起作用,因为在对其执行任何函数调用之前必须实例化对象。
答案 2 :(得分:2)
getTime是日期对象的函数,而不是Date()函数的函数,因此您必须调用Date()来获取日期对象,然后在其上调用getTime。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
这将一气呵成,但有点令人困惑
(new Date()).getTime()