2017-06-23 124 views
0

我想比較兩個日期。我想檢查並查看一個日期是否在另一個之前。我正在使用momentjs,我所做的一切似乎都會返回false。任何幫助,將不勝感激。使用Momentjs比較兩個日期

Format - [Month, Year] 
moment([0, 2012]).isBefore([1, 2013]); 
+1

根據文件,因爲這兩個日期都無效,將返回false – user93

+0

的文檔具有'瞬間([2012,0,31])',我剛把的一天。我如何正確書寫它? – bp123

回答

1

它總會給你一個無效的日期已編碼的方式。使用時刻構建日期的方法有很多種。試試這個:

var a = moment([2012, 0]); 
var b = moment([2013, 1]); 
console.log(a.isBefore(b)); //returns true 

在相同的備忘,請仔細閱讀「0」的用法月份的文檔,2.1.0版本之前和之後:

月份是零索引,因此一月份是0月。

在版本2.1.0之前,如果時間改變了幾個月並且新月沒有足夠的日子來保持當前的月份日期,那麼它會溢出到下一個月。

// before 2.1.0 
moment([2012, 0, 31]).month(1).format("YYYY-MM-DD"); // 2012-03-02 

隨着2.1.0版本,這已更改爲被夾到目標月底。

// after 2.1.0 moment([2012, 0, 31]).month(1).format("YYYY-MM-DD"); // 2012-02-29

+0

嗨@Joey感謝您提供的細節。我認爲這是一個更簡潔的方式來編碼我所提出的答案? – bp123

+0

是的,您可以選擇刪除指向原始問題的日子。如果那是你想知道的,我不認爲有任何主要的性能差異。 –

0

什麼似乎工作是這樣的:

var a = moment({month: 0, year: 2012}); 
var b = moment({month: 2, year: 2014}); 

console.log(a.isBefore(b))