我正在使用此页面http://xdsoft.net/jqplugins/datetimepicker/中的jquery.datetimepicker.js,我想以特定方式实现它,因此用户可以选择从特定日期开始24小时开始的日期。 到目前为止我所做的是:
我根据从服务器收到的字符串创建了一个新的日期对象:
var now = new Date("October 05, 2015 17:59:57");
我在这个日期增加了24小时:
now.setHours(now.getHours() + 24);
后来我把这个逻辑:
var dd = now.getDate();
var mm = now.getMonth();
var yy = now.getFullYear();
var hh = now.getHours();
var isPM = now.getHours() >= 12;
var isMidday = now.getHours() == 12;
var time = [now.getHours() - (isPM && !isMidday ? 12 : 0),
now.getMinutes()].join(':') +
(isPM ? ' pm' : 'am');
var logic = function (currentDateTime) {
if (currentDateTime.getDate() == dd && currentDateTime.getFullYear() == yy && ((currentDateTime.getMonth()) == mm)) {
this.setOptions({
formatTime: 'g:i A',
format: 'd/m/Y h:i A',
minDate: now,
minTime: time
});
}
else{
this.setOptions({
formatTime: 'g:i A',
format: 'd/m/Y h:i A',
minDate: now,
minTime: '0:00 AM'
});
}
};
它几乎正常。 当用户打开datetimepicker时,他每天都会看到10月6日被禁用(这没关系)。当他选择10月6日时,他可以选择从17:59:57开始的时间(在给定时间后24小时 - 这很好)。当用户稍后点击任何一天时,例如十月七日 - 他可以选择从凌晨0点开始的任何一小时(这也很酷)。
因此,当他选择10月7日和0:00 AM的日期时,他可以将日期切换回10月6日,时间保持在凌晨0:00 - 这是错误的,因为它应该跳进可用的插槽,当天17:59:57。
我该如何解决?
到目前为止,这是我的小提琴:http://jsfiddle.net/b8o5cvdz/17/
答案 0 :(得分:0)
不幸的是插件包含一些缺陷。我在他们的例子中遇到了同样的错误。您也可以直接在输入框中修改日期,并在minDate
之前写一段时间。
我的建议改为使用https://github.com/Eonasdan/bootstrap-datetimepicker。
您可以使用minDate选项获得与here相同的效果。并检查日期更改here
我希望这会有所帮助。