自动填充日期和时间

时间:2010-09-30 21:03:13

标签: javascript jquery datetime time

我目前正在做的是设置日历功能,但是当用户选择日期,然后是事件开始的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;
        });

    });

任何指导都将不胜感激。

2 个答案:

答案 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;
        });

    });