我在表单中有两个日期时间选择器,用于输入开始时间和结束时间 开始时间的ID是" startTime"结束时间是" endTime"。
var startTime = document.getElementById("startTime");
var endTime = document.getElementById("endTime");
if (new Date(startTime.value).getTime() > new Date(endTime.value).getTime()) {
alert("End Time should be greater than Start Time");
return false;
}
我尝试比较开始时间和结束时间,并验证开始时间不应大于结束时间。
现在,我想写一个验证,这样结束时间应该比开始时间大1小时
sampleLink:DateTimePicker Example
$('#startTime').datetimepicker({
onClose: function(dateText, inst) {
var endDateTextBox = $('#endTime');
if (endDateTextBox.val() != '') {
var testStartDate = new Date(dateText);
var testEndDate = new Date(endDateTextBox.val());
if (testStartDate > testEndDate)
endDateTextBox.val(dateText);
}
else {
endDateTextBox.val(dateText);
}
},
onSelect: function (selectedDateTime){
var start = $(this).datetimepicker('getDate');
$('#endTime').datetimepicker('option', 'minDate', new Date(start.getTime()));
}
});
$('#endTime').datetimepicker({
onClose: function(dateText, inst) {
var startDateTextBox = $('#startTime');
if (startDateTextBox.val() != '') {
var testStartDate = new Date(startDateTextBox.val());
var testEndDate = new Date(dateText);
if (testStartDate > testEndDate)
startDateTextBox.val(dateText);
}
else {
startDateTextBox.val(dateText);
}
},
onSelect: function (selectedDateTime){
var end = $(this).datetimepicker('getDate');
$('#startTime').datetimepicker('option', 'maxDate', new Date(end.getTime()) );
}
});
我尝试了这个并且让开始时间和结束时间保持一致。但我不确定如何将结束时间增加1小时。
例如,如果启动时间值是03-23-2012 10:00 AM,我希望结束时间为03-23-2012 11:00 AM 有人可以帮我这个吗?
由于
答案 0 :(得分:1)
好的,这是第一个是您想要的版本,其余的都可以用来调试。
**最终解决方案增加+ 1 ** http://jsfiddle.net/j82JJ/31/
简单日期验证演示 http://jsfiddle.net/j82JJ/5/
时间验证 http://jsfiddle.net/j82JJ/18/
此外,如果您取消注释掉我已评论过的代码以生成验证,那么您将永远不会遇到需要验证的情况。 :)
步骤 - 我已注释掉一行,所以现在您可以选择开始日期,然后在第二个文本框中选择结束日期,但小于开始日期,警报将会出现。
'另请注意:'如果您取消注释我在jsfiddle中注释掉的行,则datetimepicker永远不会允许您选择日期小于此设置的开始日期。
<强> HTML 强>
<div style="margin: 15px;">
<input id="example16_start" type="text" value="" name="test">
<input id="example16_end" type="text" value="" name="test">
</div>
Jquery代码详细信息 http://trentrichardson.com/examples/timepicker/(所有3个小提琴都有Jquery代码)第一个应该是你的意思:
您需要的只是您想要执行此操作的“OnSelect”事件:
onSelect:function(selectedDateTime){
var startDate = $('#example16_start').datetimepicker('getDate');
var endDate = new Date(parseFloat(startDate.setHours(startDate.getHours()+1)));
//Get the ending date datepart
var endDateDatePart = endDate.getFullYear() + '/' + endDate.getMonth() + '/' + endDate.getDate();
//calculate the ending date time part including AM/PM
var endDateTimePart;
if (endDate.getHours() > 12) { endDateTimePart = endDate.getHours()-12 + ':' + endDate.getMinutes() + ' PM';} else {endDateTimePart = endDate.getHours() + ':' + endDate.getMinutes() + ' AM';}
$('#example16_end').datetimepicker('setDate', endDateDatePart + ' ' + endDateTimePart );
}
Phew,这也可以帮到你了解这个新的datetimepicker后找到方法:Jquery datetimepicker - Advance time by 1 hour
**(我将jsfiddle中的几个vars命名为你的名字srry)
这会有所帮助,如果你想我可以减少一些代码,但你也可以这样做,但是好的链接,欢呼!