Как лучше показать местное время события? - PullRequest
0 голосов
/ 02 июля 2019

У меня есть событие, которое происходит каждый день в 1:00 UTC.Я пытаюсь найти самый простой способ показать местное время пользователю:

document.getElementById('local').innerHTML=(new Date(3600000)).toLocaleTimeString();

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

Ответы [ 3 ]

1 голос
/ 02 июля 2019

Если вы хотите показать событие, которое происходит в 1:00 по UTC, в формате с указанием локали, вы также должны включить часть даты.Вы не можете просто использовать new Date(3600000), поскольку это 1970-01-01 01:00:00 UTC, поэтому вы получите смещение часового пояса для этого времени (которое может отличаться из-за перехода на летнее время или из-за изменения локалисмещение).

Так что если вы хотите, чтобы каждый 1:00 UTC в течение следующих 7 дней, то:

var d = new Date();
d.setUTCHours(1,0,0,0);
for (var i=7; i>0; i--) {
  console.log(d.toLocaleString());
  d.setUTCDate(d.getUTCDate() + 1);
}
0 голосов
/ 02 июля 2019

var oneam = new Date(new Date().setUTCHours(1,0,0,0));
console.log(oneam.toString())

получит сегодня в 1:00 UTC, как строка местного времени.

0 голосов
/ 02 июля 2019
const timeZoneValue = "Asia/Kolkata";
const localeStr = "en-US";

document.getElementById('local').innerHTML=(new Date().toLocaleString(localeStr , {timeZone: timeZoneValue}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...