2014-01-24 33 views
0

我必須比較他們想要放入的日期和今天的當前日期,並且如果他們輸入了將來的日期,然後提醒他們更改日期,否則插入數據。查看是否選擇日期從今天起 - JavaScript

基本上我有問題比較日期。這裏是我的代碼:

var today = year + '-' + month + '-' + day + ' 00:00:00'; 

var d1 = new Date(postdate); // postdate = 2014/02/01 ie: 1 Feb 2014 
var d2 = new Date(today); // todays date 
if(d1>d2){ 
    alert('You cannot post in the future!'); 
} 

但這似乎並不奏效。我哪裏錯了?

+0

確保JS正確解析您的字符串。如果你將一個字符串傳遞給Date(),它必須是一個可識別的格式:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date –

回答

0

將日期轉換爲可比較的數字,如毫秒。

if(d1.valueOf()>d2.valueOf()){ 
    alert('You cannot post in the future!'); 
} 
0

您不需要創建新變量today。 如果今天你正在試圖讓今天的日期,你可以簡單地做 var today = new Date();

var d1 = new Date(postdate); // postdate = 2014/02/01 ie: 1 Feb 2014 
//---------- 
var d2 = new Date(year,month,day); // todays date 
//---------- 

if(d1>d2){ 
    alert('You cannot post in the future!'); 
} 

記住month是0的索引。所以,對於十二月,它將是11.

0

比較相同格式的日期,如果今天是2014-01-24 00:00:00那麼postdate也應該是2014-02-01 00:00:00

然後使用+前綴比較毫秒:

if(+d1 > +d2){ 
    alert('You cannot post in the future!'); 
} 
相關問題