我的表單有一個Kendo DatePicker和一個在執行form.submit()之前運行JavaScript函數的按鈕。我需要能夠比較我輸入的日期和下限,並且如果代碼早於我的設置日期,則會阻止代碼繼續(提交表單)。如果限制沒有被違反,我想返回false,如果有限制,則返回true。我會用這個例子來說明什麼,我試圖驗證碼做:Moment.js - 日期比較:捕捉最小範圍
var lowerBound = new Date('1776', '6','4'); // July 4, 1776
var dateField = $('#myDateField').val(); // <-- comes from Kendo DatePicker
var dateToConsider = new Date(dateField); // if this is 1/1/0001, this changes to 1/1/1901... not good, so I do this, instead....
var arrDate = dateField.split('/'); // I also check for '-', ' ', and '.'
dateToConsider = arrDate[2] + '-' + arrDate[0] + '-' arrDate[1]; // could add 'T00:00:00Z'; but don't think it matters
var momentDTC = moment(dateToConsider);
var lowerLimitBreached = moment(lowerBound).isAfter(momentDTC); // <-- this is always false
if (!lowerLimitBreached)
$('form').submit();
我已經輸入1/1/0001到控制,並不斷給lowerLimitBreached
爲假,當這應該是真的,因爲1-1-0001顯然早於7-4-1776 ...我試過使用.isBefore()
,但遇到同樣的問題,並且文檔實際上說NOTE: moment().isBefore() has undefined behavior and should not be used!
,所以我不敢使用它。
瞬間文檔:http://momentjs.com/docs/#/query/
「由於您使用的那一刻,不使用JavaScript Date對象都」 ---你不需要用時間來比較兩個日期。 – zerkms 2015-03-25 01:36:29
雖然這不是OP的問題嗎? – ThisClark 2015-03-25 01:37:25
它是。 OP沒有說明解決方案必須是基於特定的時刻。 – zerkms 2015-03-25 01:37:59