javascript, кажется, использует часовые пояса в обратном порядке с Firefox

Я выполнил следующее в консоли Firefox (версия 21) и получил неожиданные результаты.

new Date(1362891600000);

var date = new Date(1362891600000);
var time = date.getHours();
new Date(date.setHours(date.getHours() + 24));

Результат действительно бросает меня в тупик.

Первая дата отображается как восточное летнее время, а вторая — как восточное стандартное время. Это полностью назад. Этого не происходит ни с IE, ни с Chrome.

Что тут происходит? введите здесь описание изображения


person Joseph    schedule 03.06.2013    source источник
comment
Обратите внимание, что, хотя метки восточного летнего времени и восточного стандартного времени расположены в обратном порядке, фактические смещения часовых поясов (GMT-0500 и GMT-0400) используются правильно. Если числовое смещение часового пояса и имя часового пояса не совпадают, то я не могу представить, что что-то, что вы сделали неправильно, могло вызвать это. Поэтому я бы сказал, что это ошибка Firefox!   -  person Celada    schedule 03.06.2013
comment
@Celada, спасибо... именно этого я и боялся. Я надеялся, что это был один из тех, кто выглядит как ошибка XYZ, но на самом деле это я действительно сделал что-то неправильное в сценариях.   -  person Joseph    schedule 03.06.2013
comment
Это определенно ошибка в Firefox. Вероятно, вам следует сообщить об этом им. Однако имейте в виду, что все, что следует за смещением, является нестандартным, и его поддержка сильно различается в разных браузерах и операционных системах. Вы можете показать его пользователю, но не полагайтесь на него для чего-либо критического.   -  person Matt Johnson-Pint    schedule 04.06.2013
comment
спасибо @Мэтт. Если бы вы могли сделать это ответом, я приму его.   -  person Joseph    schedule 04.06.2013
comment
Я зарегистрировал это как ошибку здесь (bugzilla.mozilla.org/show_bug.cgi? идентификатор=879261)   -  person Joseph    schedule 04.06.2013
comment
@Joseph, не могли бы вы вставить свою ссылку на ошибку Firefox, это поможет отслеживать других, которые сталкиваются с той же проблемой?   -  person Gaurav Arora    schedule 04.06.2013
comment
@ Рик, да, я сделал, это комментарий, который я сделал прямо над твоим.   -  person Joseph    schedule 04.06.2013
comment
@Джозеф - я пропустил! Ты очень быстрый человек :)   -  person Gaurav Arora    schedule 04.06.2013
comment
@Rick спасибо за рекомендацию. Мое приложение на самом деле ничего не делает с датами. Я просто сериализую их с сервера, а затем передаю их сторонней структуре дат для обработки некоторого синтаксического анализа, и именно здесь я обнаружил ошибку. Мое приложение просто играет посредника.   -  person Joseph    schedule 04.06.2013


Ответы (1)


Это определенно ошибка в Firefox. Вероятно, вам следует сообщить об этом им.

Однако имейте в виду, что все, что следует за смещением, является нестандартным, и его поддержка сильно различается в разных браузерах и операционных системах.

Например, некоторые браузеры отображают название часового пояса, а другие — аббревиатуру или внутренний идентификатор. Кроме того, некоторые сохраняют свои собственные строки, а некоторые используют значения, возвращаемые операционной системой. И в Windows есть другая база данных часовых поясов, чем в Linux или Mac. Кроме того, некоторые браузеры могут локализовать эту строку, используя настройки языка, локали или культуры.

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

person Matt Johnson-Pint    schedule 04.06.2013
comment
Ошибка зарегистрирована здесь: (bugzilla.mozilla.org/show_bug.cgi?id=879261) - person Joseph; 04.06.2013
comment
Ошибка, похоже, вернулась в FF 56.0.1 (64-разрядная версия). Глядя на историю ошибки, она кажется исправленной, затем не исправленной, затем исправленной, затем не исправленной.... - person Mark Wagoner; 11.10.2017