我想测试是否已经过了一段时间。我使用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");
}
我belived他们是等价的,但事实并非如此。我检查了优先级,最后看来我必须调用new来创建一个变量。似乎不可能调用(new Date()。getTime())。请,你会如此善意地解释为什么它不能写成第二种方式?
“不工作”>。<检查了每个表达式求,和你我会很快看到发生了什么事。 –
您可以使用'Date.now()'而不是'var now = new Date(),now_t = now.getTime();'。对于不支持'Date.now()'的浏览器,[MDN文档](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/now)中有一个非常简单的兼容填充。 – user113716