Временной интервал в 15-минутном формате - PullRequest
1 голос
/ 11 апреля 2011

У меня есть текстовое поле с надписью «Время», которое принимает 12-часовое или 24-часовое время и преобразует его в 12-часовой формат, т.е. формат (чч: мм).

Мое требование - теперь преобразовать время в 15-минутный формат приращений.

Например:

Если пользователь вводит 01: 10a, его следует автоматически преобразовать в 01: 15a.

Особые случаи:

Если пользователь вводит 11: 53a, его следует преобразовать в 12: 00p (обратите внимание, что значение am / pm здесь изменяется)

Если пользователь вводит 11: 53p, его следует преобразовать в 12: 00a (обратите внимание, что значение am / pm здесь изменяется)

Это необходимо сделать с помощью функции JavaScript.

Пожалуйста, предложите, какую логику я должен использовать для этого преобразования.

1 Ответ

2 голосов
/ 11 апреля 2011

Вы можете использовать тот факт, что дата имеет дело с 60 минутами правильно, чтобы сделать это.

var parts, d, s = '11:55pm';
if (parts = /(\d+):(\d+)(\w+)?/.exec(s)) {
    // date is good
    d = new Date();
    if (parts[3] == undefined) {
        // 24 hr
        d.setHours(parseInt(parts[1]));
    } else {
        d.setHours(parseInt(parts[1]) + ((parts[3].indexOf('a') >= 0) ? 0 : 12));
    }
    // if this is 60, wraps hours...
    d.setMinutes(Math.round(parseInt(parts[2])/15)*15);
    alert(d.toString());
}

В конце, просто получите доступ к d с помощью функций здесь и отформатируйте при необходимости.

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