比较日期选择器日期 Javascript

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12821033/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 08:34:14  来源:igfitidea点击:

Comparing Datepicker Dates Javascript

javascriptjquerydatepicker

提问by streetlight

I'm trying to compare two datepickerdates and see if they are more than 7 days apart.

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

How would I do this?

我该怎么做?

I would normally just see if their difference is greater than 7, but that won't account for months and such.

我通常只会查看它们的差异是否大于 7,但这不会考虑几个月之类的情况。

Here is my code:

这是我的代码:

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

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

Any tips??

有小费吗??

回答by Gustav Barkefors

Use $("#datepicker_xxx").datepicker("getDate")to get the picked date as a Date. Then it's just a matter of

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

end - begin > 7 * 86400 * 1000

回答by Alex

Try this, DatePicker has a handy formatDate function which i've used to compare mm/dd/yy dates:

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

回答by Milind Anantwar

// Check the date range, 86400000 is the number of milliseconds in one day

// 查看日期范围,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;

回答by rony36

Try this:

尝试这个:

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!') ;
}

Hope it should work. Thanks. For more check itout.

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

回答by Jasar Orion

$(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)
        }
    });  
});

From: <input type="text" id="txtFromDate" />

从: <input type="text" id="txtFromDate" />

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

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

回答by Ankush Jain

this is working perfectly

这是完美的工作

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;

}