比较Datepicker日期Javascript
我正在尝试比较两个datepicker
日期,看看它们是否相隔超过7天。
我该怎么办?
我通常会看到他们的差异是否大于7,但这不会占数月等。
这是我的代码:
var datepickerBegin = $("#datepicker_start").val(); var datepickerEnd = $("#datepicker_to").val(); if (datepickerBegin - datepickerEnd > 7) { alert('more than a week apart!') }
有小费吗??
使用$("#datepicker_xxx").datepicker("getDate")
将选择的日期作为Date
。 那么这只是一个问题
end - begin > 7 * 86400 * 1000
试试这个,DatePicker有一个方便的formatDate函数,我用它来比较mm / dd / yy日期:
$.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
//检查日期范围,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;
试试这个:
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!') ; }
希望它应该工作。 谢谢。 有关更多信息, 请查看 。
$(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) } }); });
来自:
要:
这是完美的
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; }