【问题标题】:Automatically populate dates and times自动填充日期和时间
【发布时间】:2010-09-30 21:03:13
【问题描述】:

我目前正在做的是设置日历功能,但是当用户选择日期,然后选择事件开始的时间(即 startTime = 00:10:00am)时,它将预先填充第二个字段(即:endTime = 00:10:30am)。

所以我认为最好的方法可能是当你选择你的时间时,jQuery 会选择 NEXT 语句并选择 15 分钟的间隔或类似的东西。

我有这段代码可以选择完全相同的时间,但显然不能很好地安排时间,如果您选择上午 10 点,您不希望结束时间是上午 10 点,而是希望它是 10 :30am

这是我目前所拥有的,但就像我说的,这只是当前选择的同一时间。

$('.startTime').change(function() {
        var startTime = $(this).val();

        $('.endTime').val(function() {
            return startTime;
        });

    });

任何指导将不胜感激。

【问题讨论】:

    标签: javascript jquery datetime time


    【解决方案1】:

    您需要convert startTime into a proper js Date object,然后是do something like this。如果您使用的是 JS 框架,则可能已经有一些实用程序可以执行此操作。

    【讨论】:

    • 这样做,并使用 datejs (不是第一个链接中最流行的答案,但节省了这么多。头痛。)
    • @Justin:你在使用像 jQuery 这样的 js 框架吗?如果没有,您可能要强烈考虑一个。然后你可以添加插件来获得你正在寻找的功能。请参阅有关 jQuery time picker plugin 的 SO 讨论。如果这不是一个选项,那么我同意@Ryley 并推荐 datejs。
    【解决方案2】:

    这是有效的,我不知道它是否有效,但我得到了这个工作。如果有更好的答案,我会全力以赴。

    $('.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;
            });
    
        });
    

    【讨论】:

    • 在随机代码上使用日期库 - 它们往往会得到正确的东西(时区、夏令时、数学),而您的代码可能不会。
    猜你喜欢
    • 2020-11-07
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多