Добавление часов и минут к дате с помощью JavaScript - PullRequest
3 голосов
/ 18 июля 2011

Я строю календарь собраний на основе часовых поясов по всему миру. Моя проблема заключается в том, как добавить или вычесть часовой пояс из выбранной пользователем даты в Javascript.

Например, в форме выбора пользователь выбирает дату из формы: затем я получаю результаты и конвертирую в дату, как показано ниже ...

var ldSelectDate = new Date(document.form1.year.value,
           document.form1.month.value,
           document.form1.day.value);

Я бы хотел добавить 12 полночь к этому объекту.

Затем я читаю XML, который получает разницу часовых поясов в строке между двумя городами: например, «+0430» для Кабула или «-0400» для Нью-Йорка (при переходе на летнее время). Это основано на GMT,

Затем я вычисляю разницу часовых поясов между двумя городами: будет возвращена строка «830». (Я предполагаю, что должен вернуть это как объект даты?). Я получил эту часть, вернув строку. Я работаю со строками.

Затем я хочу просмотреть 24 часа в сутки, установить в Кабуле 12 часов ночи, а затем повторить. Скорее всего, я могу понять это, то есть установить дату с целыми часами, пока я повторяю цикл.

Моя проблема в том, чтобы безболезненно вычесть «830» из Кабула, чтобы посмотреть, сколько времени будет в Нью-Йорке.

Будет идеально, если я смогу просто вычесть часы и минуты из кабульского времени. Здесь я заметил, что кто-то вычитает часы в javascript, но не минуты. Кстати, этот пост не работал для меня.

Я сделал это со строками без минут, но я испортил минуты. Должен быть более простой способ.

Я бы выбрал решение либо в нативном Javascript, либо в jQuery.

Опять же, мне нужно вычесть / добавить разницу часовых поясов в часах и минутах к определенной дате.

Спасибо

Ответы [ 2 ]

12 голосов
/ 18 июля 2011
date.setMinutes(date.getMinutes()+minutesToAdd);

Приведенный выше код установит ваш объект даты вперед на количество минут в переменной minutesToAdd

0 голосов
/ 18 июля 2011

Проще всего вычислить минуты для этой дельты времени, а затем сделать дельту минут.

date.setMinutes(date.getMinutes() - (hours*60+minutes))
...