6

我正在尝试比较两个datepicker日期,看看它们是否相隔超过 7 天。

我该怎么做?

我通常只会看看他们的差异是否大于 7,但这不会考虑几个月等。

这是我的代码:

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

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

有小费吗??

4

6 回答 6

18

用于$("#datepicker_xxx").datepicker("getDate")将选择的日期作为Date. 那么这只是一个问题

end - begin > 7 * 86400 * 1000
于 2012-10-10T14:00:29.960 回答
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;
于 2012-10-10T14:14:22.660 回答
2

试试这个,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

于 2014-11-21T15:12:42.370 回答
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!') ;
}

希望它应该工作。谢谢。如需更多信息,请查看

于 2013-04-17T13:14:53.260 回答
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" />

于 2015-04-21T21:40:06.427 回答
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;

}
于 2013-09-18T07:45:48.347 回答