Добро пожаловать в выпуск Еще одного вопроса о часовом поясе на этой неделе:
Я много читал о SO, пытался манипулировать moment.js и date.js, чтобы они помогли мне, и в целом меня мучило чувство разочарования с тех пор, как я начал пытаться решить эту проблему, поэтому, если кто-то может помочь или указать мне на повторяющийся вопрос о SO, который я просто не смог найти, это было бы здорово.
У меня есть страница. Эта страница отображается несколько раз, например: 7:28, 7:38, 7:48. Я знаю, утро или вечер. Это всегда Америка / Нью-Йорк (они не меняются при переходе на летнее время, поскольку событие, которому они соответствуют, всегда происходит в это время независимо от летнего времени). Назовем их расписанием. Я хочу выделить следующее время.
- Это банально для людей, живущих в Америке / Нью-Йорке.
- This is not too terrible for people living in America/Los Angeles (assuming my logic works).
- I can take the current time of the computer in America/Los Angeles, convert it to UTC, then determine if America/Los Angeles is currently observing DST or not and determine whether America/New York should be -0400 or -0500, apply that to the UTC, and make my comparison. This hurts a little because you're still always dealing with a Date based in America/Los Angeles and not actually changing the time zone of the Date object, but I have a reliable means of rolling back (or forward) the hours from the UTC time.
Однако что происходит, когда я пытаюсь определить, соблюдается ли летнее время с компьютера в регионе, где летнее время вообще не соблюдается?
Насколько мне известно, JavaScript будет создавать объекты Date только для текущего часового пояса, а затем любое определение DST будет основано на этом объекте Date.
Мне должно быть все равно? Время в первую очередь актуально только для людей, живущих в Америке / Нью-Йорке. Я просто пытаюсь создать приложение, которое имеет смысл при просмотре из другого часового пояса, например, когда 3 часа ночи в country_without_DST и 2 часа дня в Америке / Нью-Йорке, `` расписание '' подчеркивает, что вот-вот произойдет 14:05 и не то, что в 3:05.