我想測試是否已經過了一段時間。我使用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