2016-01-19 24 views
0

我想要有一個日期輸入框,它具有以下限制。日期必須是今天或更早的日期,但不得超過1年以前。我有以下行:在JavaScript中用戶輸入的日期限制

if (myFDGDT - todayDate > 0 || (myFDGDT - todayDate)/86400000 < -365) 

的第一部分將創建相應的警報時,一些進入今天的日期之後的日期。不知道最好的方法來限制前一年的入門。嘗試了幾個項目,但以上只是我最後一次嘗試的一個例子。這也寫在依賴項中,而不是在我們的入門客戶端的全局JavaScript中。

+0

你的日期是Date對象還是Unix時間戳? –

+1

請注意在客戶端處理日期和時間,很多人的時鐘日期和時間不正確。 – nikoskip

回答

0

如果您在應用程序中操縱日期,應考慮使用momentjs庫。對於你的問題,解決方案將是這樣的:

var momentdate = moment(date); 
    if (momentdate.isAfter(momentdate.add(1, 'year') || 
    momentdate.isBefore(momentdate.startOf('day')) { 
     // Invalid date? 
    } 

希望這會有所幫助。

1

這是一個將生成一年前的Date對象的代碼片段。您可以根據需要使用大於/小於運算符進行比較。

var oneyear = new Date('01/01/1971'); // from unix epoch 
var now = new Date(); 
var oneyearago = new Date(now - oneyear); 
alert(oneyearago); 
+0

這可行,但似乎不必要的棘手。爲什麼不使用setYear(now.getFullYear() - 1)?我很好奇,如果你的方法有我看不到的優點。 –

+0

有效的點。在撰寫本文時,我在概念上想到減去時間跨度。設定年份也有效。僅供參考Mozilla開發人員網絡列表setYear()已棄用,因此您可能想要使用getUTCFullYear()/ setUTCFullYear()。 –

+0

不錯。謝謝你的提示。對於1971年的酷炫技巧。這在我一百萬年以前從未發生過。 –