#javascript #jquery #datetime #momentjs
#javascript #jquery #дата и время #momentjs
Вопрос:
У меня есть следующий код:
UTC<br/>
<div id="divUTC">'UTC 5:30'</div><br/>
<br/>
<div id="divLocal">
</div>
В моем javascript я пытаюсь преобразовать UTC 5:30 в восточно-индийское стандартное время (Ченнаи, Калькутта, Мумбаи, Нью-Дели)
Значение UTC может быть любым, так же как и преобразованное значение.
var divUtc = $('#divUTC');
var divLocal = $('#divLocal');
//get text from divUTC and convert to local timezone
Я знаю, что я не разместил здесь никакого кода, но, к сожалению, мне это не приходит в голову, у меня есть возможность поместить пары ключ-значение, но это неэффективно. Пожалуйста, предложите.
Комментарии:
1. преобразование часового пояса требует относительно больших усилий. Я бы посоветовал использовать для этого какую-нибудь библиотеку, например momentjs
2. Привет, Владимир М, я понимаю, но momentjs преобразует только время UTC в местное время, спасибо
Ответ №1:
Одна из проблем преобразования UTC XX в любой текст местного часового пояса заключается в том, что он не соответствует соотношению 1: 1. Тем не менее, если вы используете momentjs с часовыми поясами, вы могли бы получить список возможных местоположений.
1) получить все известные часовые пояса:
var names = moment.tz.names();
// names now contain an array of tz names
2) выполните итерацию по массиву имен, создайте объект moment в определенном часовом поясе и получите его смещение. Следующий код выведет смещения для каждого имени tz на данный момент.
for( var i = 0; i < names.length; i ){
console.log(moment.tz(names[i]).format('Z'));
}
3) в этом цикле вы можете сравнить utcOffset момента или текстовое представление смещения и получить набор часовых поясов, которые соответствуют вашему смещению.
Вот цикл, который будет печатать все имена tz для 05:30.
var names = moment.tz.names();
for( var i = 0; i < names.length; i ){
if(moment.tz(names[i]).format('Z') === " 05:30"){
console.log(names[i])
}
}
// output:
// Asia/Calcutta
// Asia/Colombo
// Asia/Kolkata
Кроме того, имейте в виду, что многие регионы имеют изменения летнего времени, что означает, что регион может иметь различное смещение в зависимости от времени года.