我目前正在做的是设置日历功能,但是当用户选择日期,然后是事件开始的TIME(即startTime = 00:10:00 am)时,它将预先填充第二个field(即:endTime = 00:10:30 am)。
所以我想也许最好的路线是当你选择你的时间时,jQuery只会选择NEXT语句并选择15分钟的间隔或这种性质的东西。
我有这个代码可以选择完全相同的时间,但这对于调度显然不太好,如果你选择上午10点,你不希望你的结束时间是上午10点,你希望它是10 :30AM
这是我到目前为止所做的,但就像我说的那样,目前只选择同一时间。
$('.startTime').change(function() {
var startTime = $(this).val();
$('.endTime').val(function() {
return startTime;
});
});
任何指导都将不胜感激。
答案 0 :(得分:2)
您需要convert startTime into a proper js Date object,然后do something like this。如果你正在使用JS框架,可能已经有一些工具来实现这一点。
答案 1 :(得分:0)
这是有效的,我不知道它是否有效,但我得到了它的工作。如果有更好的答案,我会全力以赴。
$('.startTime').change(function() {
var startTime = $(this).val();
var hours = startTime.split(":")[0]; // Hours
var minutes = startTime.split(":")[1]; // Minutes
var seconds = startTime.split(":")[2]; // Seconds
// new Date(year, month, day, hours, minutes, seconds, milliseconds)
var newTime = new Date('0', '0', '0', hours, minutes, seconds, '0');
//alert(newTime.getMinutes());
if(newTime.getMinutes() == '15' || newTime.getMinutes() == '00') {
finalTime = newTime.setMinutes(newTime.getMinutes() + 15);
} else if (newTime.getMinutes() == '30') {
finalTime = newTime.setMinutes(newTime.getMinutes() + 15);
} else if (newTime.getMinutes() == '45') {
finalTime = newTime.setHours(newTime.getHours() + 1, 0);
}
if(newTime.getHours() < 10) {
newHours = '0'+ newTime.getHours();
} else {
newHours = newTime.getHours();
}
if(newTime.getMinutes() < 10) {
newMinutes = '0'+ newTime.getMinutes();
} else {
newMinutes = newTime.getMinutes();
}
if(newTime.getSeconds() < 10) {
newSeconds = '0'+ newTime.getSeconds();
} else {
newSeconds = newTime.getSeconds();
}
var adjustTime = newHours +":"+ newMinutes +":"+ newSeconds;
$('.endTime').val(function() {
return adjustTime;
});
});