我使用了两个 jquery 日期选择器。
在第一个日期选择器中,我选择“2012 年 3 月 18 日”之类的日期,下一个日期选择器应仅显示从 2012 年 3 月 15 日到 2012 年 3 月 21 日的日期。
它应该只在特定日期之前和之后添加 3 天(“18-MAR-2012”)我该怎么做?
问问题
2078 次
2 回答
1
$(function(){
$('#datepicker').datepicker({
onSelect: function(dateText, inst) {
var threeDays = 259200000;
$('#datepicker2').datepicker("option", "minDate", new Date(Date.parse(dateText)-threeDays));
$('#datepicker2').datepicker("option", "maxDate", new Date(Date.parse(dateText)+threeDays));
$('#datepicker2').datepicker("setDate", dateText);
}
});
$('#datepicker2').datepicker();
});
...259200000 是以微秒为单位的 3 天。每次您在第一个日期选择器中选择一个日期时,它都会限制 2. 中的范围。不幸的是,如果我遗漏了$('#datepicker2').datepicker("setDate", dateText);
,第二个日期选择器中的日期将设置为最后一个可能的值。
于 2012-05-31T13:41:00.657 回答
1
这与范围日期选择器有关。我找到了解决方案,可能会帮助你。工作小提琴在这里(小提琴中缺少样式)。在这里,我在第一个日期选择器的“onSelect”函数中设置了下一个日期选择器的限制。
var d;var tempdate; var tempdate1; var da; var da1;
$('#nam1').datepicker({
minDate: 0,
dateFormat: 'd/m/yy',
buttonImageOnly: true,
showAnim: 'slideDown',
duration: 0,
onSelect: function(dateStr) {
d = $.datepicker.parseDate('d/m/yy', dateStr); //Get selected date
tempdate = new Date(d);
tempdate1 = new Date(d);
tempdate.setDate(tempdate.getDate() - 3); //Subtracted 3 days
tempdate1.setDate(tempdate1.getDate() + 3); // added 3 days
da = new Date(tempdate);
da1 = new Date(tempdate1);
}
});
$('#nam2').datepicker({
dateFormat: 'd/m/yy',
buttonImageOnly: true,
showAnim: 'slideDown',
duration: 0,
beforeShow: function(input)
{
//setting min and max date for second datepicker
if(da1 != undefined) return { minDate: da, maxDate: da1 };
}
});
有更好的方法来处理日期变量。自己试试吧。
于 2012-05-31T14:21:22.147 回答