簡體   English   中英

為什么日期比較在javascript中顯示奇怪的行為?

[英]Why Date comparison is showing weird behavior in javascript?

當我在javascript中使用日期比較時,在瀏覽器控制台中我確實執行了以下操作。

new Date() >= new Date()返回true

new Date() <= new Date()返回true

這看起來很好,因為我認為兩者是平等的,如果我是正確的話

new Date() == new Date()應該返回true

有趣的是它返回了錯誤 然后我也在下面進行了操作

new Date() > new Date()返回false

new Date() < new Date()返回false

new Date() != new Date()返回true

我的假設也很好。

如果新的Date() s都返回相同的時間,則==應該返回true以及> =和<= ,其他明智的是>或<應該返回ture!=返回true

下表包括不同案例的預期結果和實際結果。

在此輸入圖像描述

為什么ACTUAL結果列不遵循其前面的任何列?

使用Date.getTime來比較時間戳,否則你只是比較我們知道不一樣的對象。

 var d1 = new Date(), d2 = new Date(); function fullCompare(a, b) { console.log(a == b, a <= b, a >= b, a < b, a > b); } fullCompare(d1, d2); fullCompare(d1.getTime(), d2.getTime()); 

像你正在做的那樣檢查相等性來比較對象的引用 要比較對象本身的實際值,最常見的做法是調用getTime()方法,該方法將返回自1970-01-01 00:00:00 UTC以來的毫秒數。

因此,以下代碼將返回true

(new Date()).getTime() == (new Date()).getTime()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM