2011-12-06 60 views
15

我有一個JavaScript的日期對象,我想弄清楚這個日期是否是今天。這樣做的最快方法是什麼?什麼是確定日期是否在JavaScript中的最佳方式?

我的擔心是圍繞比較日期對象,因爲一個人可能與另一個人的時間不同,但今天的任何時間應返回true

+4

爲自己節省一些時間(得到它?)並使用Moment.js:http://momentjs.com/ –

回答

45

你可以使用toDateString

var d = new Date() 
var bool = (d.toDateString() === otherDate.toDateString()); 
+0

謝謝@AKX解決這個問題。不知道發生了什麼:P –

+0

如果我的格式爲「01192015」,該怎麼辦? – SearchForKnowledge

+1

@SearchForKnowledge格式不太受關注。原始問題的前提是您的變量是以JavaScript日期對象格式開始的。至少就javascript而言,'01192015'在技術上是無效日期格式(控制檯中的'New Date('01192015')'返回「無效日期」)。但是,使用標準的'01-19-2015'將返回一個有效的日期對象,您可以使用'toDateString()'將它與今天的日期進行比較。 –

3
var someDate = new Date("6 Dec 2011").toDateString(); 
var today = new Date().toDateString(); 
var datesAreSame = (today === someDate); 
8

的答案基於toDateString()會工作我認爲,但我個人會避免他們,因爲他們基本上提出錯誤的問題。

下面是一個簡單的實現:

function areSameDate(d1, d2) { 
    return d1.getFullYear() == d2.getFullYear() 
     && d1.getMonth() == d2.getMonth() 
     && d1.getDate() == d2.getDate(); 
} 

MDN有JS Date對象API的一個體面的概述,如果這是不太你所需要的。

+2

請不要鏈接到W3Schools。他們有[誤導性和經常不正確的內容](http://w3fools.com/)。相反,使用像[Mozilla卓越的開發人員網絡](https://developer.mozilla.org/en-US/) –

+0

這樣更好的源代碼,我不知道W3School的問題。更新了指向相關MDN文檔頁面的鏈接。 – recf

+0

+1,因爲我認爲這是比toDateString更強大的解決方案。 – RobG

相關問題