Я хочу, чтобы Safari возвращала тот же результат, что и Chrome и FF. Как мне это сделать?
Вам нужно будет переопределить Date.prototype.toString метод. Встроенный метод зависит от реализации, поэтому, если он соответствует достаточному требованию ECMA-262 (см. Ниже), он является совместимым.
Существуют различные библиотеки, которые выполняют разумную задачу по обнаружению смещения часового пояса хоста и преобразованию его в имя часового пояса, как правило, имя часового пояса IANA. Преобразование в другие названия часовых поясов, таких как «SE Asia Standard Time», более проблематично, так как вряд ли не все в этот часовой пояс называют его одним и тем же именем или используют ту же аббревиатуру.
Это ошибка Safari?
Нет. Спецификация просто требует, что Date.prototype.toString возвращает «зависящих от реализации строкового значения, которое представляет собой [дату] в качестве даты и времени в текущем часовом поясе, используя удобную, читаемую форму.» , поэтому все, что подходит, прекрасно.
В чем разница между «SE Asia Standard Time» и «Indochina Time»? Стандартов для названий часовых поясов и их сокращений нет, поэтому достаточно «удобного, удобного для человека» для кого-то достаточно.
Выход из [* Date.prototype.toString *] (http://ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tostring) полностью зависит от реализации, там вы ничего не можете сделать, чтобы изменить формат, строку часового пояса или любой ее аспект.Просто потому, что один хозяин несовместим с другими, это не делает его неправильным, просто другим. Существуют различные библиотеки, которые выполняют разумную задачу определения часового пояса пользователя. Они не на 100% точны, поэтому, если это имеет значение, не полагайтесь на него. – RobG