[英]jquery datepicker get date range
我正在使用jQuery datepicker選擇日期范圍。 下面的代碼獲取日期范圍的開始input1
和結束input2
。 但是,我如何簡單地獲取兩者之間的日期? 謝謝你的建議!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" href="../demoengine/demoengine.css" rel="stylesheet">
<script type="text/javascript" src="../demoengine/demoengine.js" async defer></script>
<title>jQuery UI Datepicker: Using Datepicker to Select Date Range</title>
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/themes/ui-darkness/jquery-ui.css" rel="stylesheet">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/jquery-ui.min.js"></script>
<style type="text/css">
.dp-highlight .ui-state-default {
background: #484;
color: #FFF;
}
</style>
</head>
<body>
<div id="datepicker"></div>
<p>
Dates:
<input type="text" id="input1" size="10">
<input type="text" id="input2" size="10">
</p>
<script type="text/javascript">
$(function() {
$("#datepicker").datepicker({
beforeShowDay: function(date) {
var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
},
onSelect: function(dateText, inst) {
var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
if (!date1 || date2) {
$("#input1").val(dateText);
$("#input2").val("");
$(this).datepicker("option", "minDate", dateText);
} else {
$("#input2").val(dateText);
$(this).datepicker("option", "minDate", null);
}
}
});
});
</script>
</body>
</html>
為了獲得介於date1和date2之間的日期,您可以在for循環中添加一天,直到達到結束日期為止。 date對象提供了setDate方法,該方法可以超出月底(例如8月32日,然后將其包裝到9月1日)。
for(; date1 < date2; date1.setDate(date1.getDate() + 1)) {
alert(date1);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.