2012-10-10 202 views
6

我試圖比較兩個datepicker日期並查看它們是否相距超過7天。比較日期選擇器日期Javascript

我該怎麼做?

我通常只會看到他們的差異是否大於7,但這不會佔用數月等等。

這裏是我的代碼:

var datepickerBegin = $("#datepicker_start").val(); 
var datepickerEnd = $("#datepicker_to").val(); 

if (datepickerBegin - datepickerEnd > 7) { 
    alert('more than a week apart!') 
} 

任何提示?

+0

這似乎是同樣的問題或多或少 - http://stackoverflow.com/questions/73971/using-javascript-how-do-i-make-sure-a-date -range-is-valid – Pyro979

+1

當我嘗試利用他的解決方案時,「差異」變量是NaN。我失去了什麼?我只是想看看它是否確實相隔七天 – streetlight

回答

16

使用$("#datepicker_xxx").datepicker("getDate")將採摘日期設爲Date。然後,它只是一個

end - begin > 7 * 86400 * 1000 
+0

這太棒了!非常感謝你! – streetlight

2

//此事檢查日期範圍,86400000是毫秒在一天之內數

var difference = (datepickerEnd- datepickerBegin)/(86400000 * 7); 
if (difference < 0) { 
    alert("The start date must come before the end date."); 
    return false; 
} 

if (difference <= 1) { 
    alert("The range must be at least seven days apart."); 
    return false; 
} 

return true; 
1

試試這個:

var datepickerBegin = $("#datepicker_start").val(); // lets, returning in mm/dd/yy format 
var datepickerEnd = $("#datepicker_to").val(); // lets, returning in mm/dd/yy format 

if (($.datepicker.parseDate('mm/dd/yy', datepickerBegin) - $.datepicker.parseDate('mm/dd/yy', datepickerEnd)) > 7) { 
alert('more than a week apart!') ; 
} 

希望它應該工作。謝謝。更多check it了。

+0

它爲我工作。 –

0

這是工作完美

function checkDateDifference(startDate, endDate) { 
    startDate = $.datepicker.parseDate('mm/dd/yy', startDate); 
    endDate = $.datepicker.parseDate('mm/dd/yy', endDate); 

    var difference = (endDate - startDate)/(86400000); 
    alert(difference) 
    if (difference < 0) { 
     showError("The start date must come before the end date."); 
     return false; 
    } 
    return true; 

} 
1

試試這個,DatePicker的具有我用比較MM/DD/YY日期的方便formatDate功能:

$.datepicker.formatDate("dd/mm/yy",new Date("09/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns true 
 
$.datepicker.formatDate("dd/mm/yy",new Date("10/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns false 
 
$.datepicker.formatDate("dd/mm/yy",new Date("11/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns false

1
$(document).ready(function(){ 
    $("#txtFromDate").datepicker({ 
     minDate: 0, 
     maxDate: "+60D", 
     numberOfMonths: 2, 
     onSelect: function(selected) { 
      $("#txtToDate").datepicker("option","minDate", selected) 
     } 
    }); 
    $("#txtToDate").datepicker({ 
     minDate: 0, 
     maxDate:"+60D", 
     numberOfMonths: 2, 
     onSelect: function(selected) { 
      $("#txtFromDate").datepicker("option","maxDate", selected) 
     } 
    }); 
}); 

來自:<input type="text" id="txtFromDate" />

要:<input type="text" id="txtToDate" />

+0

嘗試通過縮進至少4個空格將代碼發佈爲代碼。那麼它會更好的可讀性。 – Rias