比较日期选择器日期 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
Comparing Datepicker Dates Javascript
提问by streetlight
I'm trying to compare two datepicker
dates 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;
}