На моем сайте пользователь A создает событие, которое начинается в 9:00. Я конвертирую это время в GMT, так что если пользователь B в другом часовом поясе на два часа вперед увидит это событие, его можно будет преобразовать в часовой пояс пользователя B и показать, что событие начинается в 11:00.Как обрабатывать смещение временной зоны с летней экономией?
Моя проблема заключается в том, что если пользователь A создает событие во время летнего времени, то он просматривает его, когда переход на летнее время превышает время, а смещение по часовой стрелке будет отключено на один час. Это приводит к событию, начинающемуся в 8:00 утра, когда это не дневная экономия и 9:00 утра, когда это летнее сбережение. Любые рекомендации о том, как исправить это с помощью javascript или php?
Моя единственная мысль, когда я получаю смещение по часовой стрелке, как показано ниже, должен ли я всегда устанавливать дату в январе, чтобы всегда получать одинаковое смещение часового пояса независимо от фактического месяца? Или есть лучший способ справиться с этим?
d = new Date();
d.setMonth(1);
d.getTimezoneOffset()
Я не уверен, что вы спрашиваете? Вы всегда должны добавить смещение часового пояса * в указанное время *. Если вы это сделаете, не будет никаких ошибок за один час. –
@MarkReed Вы имеете в виду при создании события, сохраняющего смещение часового пояса с событием и используя это значение при преобразовании его в разные временные интервалы? –
В чем проблема, которую вы пытаетесь решить? Если я создам событие, которое состоится в мае в 9 утра EDT, оно будет сохранено как 1300 UTC. Если я посмотрю на это майское событие, когда он в настоящее время в декабре, он все равно будет отображаться как 9AM, потому что смещение часового пояса в мае составляет 4 часа, хотя текущий в декабре равен 5. –