JavaScript: часы с несколькими часовыми поясами

Я хочу отображать 3 часа из 3 разных часовых поясов с помощью JavaScript. Я просмотрел Интернет в поисках простого решения, но все, что я нашел, это длинные сценарии и расширения .js, все для выполнения простой задачи.

Есть простой способ сделать это? мне действительно нужно добавить дополнительный файл JS для выполнения этой задачи?

Заранее спасибо помощникам!


person natiz    schedule 19.02.2013    source источник
comment
Время обработки в JS — это PITA... вот почему существуют такие вещи, как MomentJS.   -  person Ben Lesh    schedule 19.02.2013


Ответы (1)


Есть простой способ сделать это?

да.

мне действительно нужно добавить дополнительный файл JS для выполнения этой задачи?

Нет. Однако обработка времени в JS сложна, поскольку у него нет действительно безопасных для разных браузеров методов синтаксического анализа и форматирования даты/времени. Для этого может быть полезно использовать библиотеку, однако это не обязательно для ваших часов.

// all three clocks represent current time
var clock1 = new Date(); // current moment
var clock2 = new Date();
var clock3 = new Date();

// for outputting, adjust them
// leave clock1 in UTC
clock2.setHours(clock2.getHours() + 3); // UTC+3
clock3.setHours(clock3.getHours() - 5); // UTC-5

// now for display, use these values:
clock1.getUTCHours();
clock1.getUTCMinutes();
clock1.getUTCSeconds();

clock2.getUTCHours();
clock2.getUTCMinutes();
clock2.getUTCSeconds();

clock3.getUTCHours();
clock3.getUTCMinutes();
clock3.getUTCSeconds();
person Bergi    schedule 19.02.2013
comment
Спасибо за решение, Берги. Просто быстрый вопрос - учитывает ли это также время летнего времени? это означает, что если часы UTC-5 должны быть на самом деле UTC-4 из-за перехода на летнее время, будут ли они корректироваться? - person natiz; 20.02.2013
comment
Нет. UTC-5 останется UTC-5, вам нужно будет самостоятельно определить, имеет ли часовой пояс, который вы хотите отобразить, летнее время (и вам нужно отображать UTC-4). Или позвольте существующей библиотеке сделать это за вас, так как расчет летнего времени сложен. - person Bergi; 20.02.2013