Автоматически заполнять даты и время - PullRequest
1 голос
/ 01 октября 2010

В данный момент я настраиваю функцию календаря, но когда пользователь выбирает дату, а затем ВРЕМЯ, когда начинается событие (т. Е. StartTime = 00:10:00 am), он затем предварительно заполняет второеполе (то есть: endTime = 00:10:30 утра).

Так что я подумал, что, возможно, лучший маршрут будет при выборе времени, jQuery просто выберет оператор NEXT и выберет 15-минутный интервал или что-то в этом родеэтого типа.

У меня есть этот код, который работает, чтобы выбрать точно такое же время, но он явно не подходит для планирования, очевидно, если вы выбираете 10 утра, вы не хотите, чтобы ваше конечное время было 10 утра, вы хотите, чтобы это было 10:30 утра.

Это то, что у меня есть до сих пор, но, как я уже сказал, это только в настоящее время выбирает то же время.

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

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

    });

Любое руководство будет оценено.

Ответы [ 2 ]

2 голосов
/ 01 октября 2010

Вам нужно преобразовать startTime в правильный объект js Date , затем сделать что-то подобное .Если вы используете JS-фреймворк, возможно, для этого уже есть некоторые утилиты.

0 голосов
/ 01 октября 2010

Это то, что работает, я не знаю, эффективно это или нет, но я заставил это работать. Если есть лучший ответ, я все уши.

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

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...