我在两个输入框中使用带有此timepicker addon的Jquery datepicker插件,一个用于“From”日期,第二个用于“To”日期。
当我设置第一个时,我希望第二个在第一个选择的日期后一天,禁用比“从”日期中选择的日期早的所有日期
如果首先选择“收件人”日期,则“发件人”日期设置为“收件人”日期前一天。
我找到了一些例子,但我不知道如何获得日期与时间。所以,如果我,例如,选择 13 / 12 / 2010年 15:50 在“发件人”日期,“收件人”日期中的日期设置为 14 / 12/2010 15:50 或至少 14 / 12/2010 00:00 。
已编辑***
我刚发现这个piece of code可以按照我的意愿运行,但没有时间戳插件。
$(function(){
$('#dateFrom').datepicker({
dateFormat: 'dd/mm/yy',
onSelect: function(dateText, inst) {
$('#dateTo').datepicker('option','minDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});
$('#dateTo').datepicker({
dateFormat: 'dd/mm/yy',
onSelect: function(dateText, inst) {
$('#dateFrom').datepicker('option','maxDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});
});
基于上面的代码,是否可以对其进行调整,以便我可以将它与timepicker插件一起使用?
事先谢谢
答案 0 :(得分:1)
我已经掌握了大部分内容,但在小部件初始化之后无法弄清楚如何设置hourMin
和minuteMin
。给出以下HTML:
<label for="from">From</label><input id="from" name="from" />
<label for="to">To</label><input id="to" name="to" />
这个JS:
$("#from").datetimepicker();
$("#to").datetimepicker({
beforeShow: function(input, inst) {
var $toDateInput = $("#to");
var fromDate = $("#from").datetimepicker("getDate");
var toDate = $toDateInput.datetimepicker("getDate");
var afterFromDate;
if (fromDate) {
if (!toDate || (toDate <= fromDate)) {
afterFromDate = new Date(fromDate.toUTCString());
afterFromDate.setDate(afterFromDate.getDate() + 1);
$toDateInput.datetimepicker("setDate", afterFromDate);
}
$toDateInput.datetimepicker("option", "minDate", fromDate);
}
}
});
请在此处查看:http://jsfiddle.net/RWjtL/3/
您的大部分条件都已达到,但有一些事情已经结束:
minDate
选项设置为null
和""
并获得了奇怪的行为。 Here's a documented issue that could be related。beforeShow
方法。我认为这是因为在处理程序中调用setDate
,但无法确定。hourMin
和minuteMin
,并且设置minDate
似乎不尊重日期的时间部分。< / LI>
作者GitHub page列出了一系列问题,其中一些似乎与我遇到的问题有关。希望至少让你开始。
答案 1 :(得分:0)