Получение часового пояса с использованием Intl API не работает в Firefox:
Я использую Intl API. В Chrome:
Intl.DateTimeFormat().resolved.timeZone
Возвращает "Европа / Лондон"
В Firefox это возвращение undefined
, хотя Firefox поддерживает Intl.
Как я могу получить часовой пояс с Firefox?
1 ответ
Технически, более правильное заклинание:
Intl.DateTimeFormat().resolvedOptions().timeZone
К сожалению, не все реализации в настоящее время поддерживают функции часового пояса Intl
API. Таким образом, хотя это вернет действительный часовой пояс IANA в Chrome, этого еще не будет сделано в FireFox и некоторых других браузерах.
В таблице совместимости kangax Intl эта функция отображается в виде подпункта под DateTimeFormat
объект помечен resolvedOptions().timeZone defaults to the host environment
,
Смотрите следующие рабочие элементы FireFox:
- Ошибка 1158733 - Определение часового пояса системы из API интернационализации Javascript
- Ошибка 895737 - DateTimeFormat не отслеживает текущий часовой пояс
- Ошибка 837961 - добавлена поддержка имен часовых поясов IANA в API интернационализации
Между тем, есть две жизнеспособные альтернативы:
- jsTimeZoneDetect - который ориентирован исключительно на задачу угадывания часового пояса.
- момент-часовой пояс - это дополнение к популярной библиотеке moment.js и содержит API
moment.tz.guess()
попытаться угадать часовой пояс пользователя.
Обратите внимание, что оба они будут внутренне пытаться использовать Intl
API, если он доступен и работает, прежде чем пытаться использовать дополнительные алгоритмы угадывания.
Также обратите внимание, что рекомендуется никогда не полагаться исключительно на обнаружение / угадывание часового пояса, а использовать его для выбора разумного значения по умолчанию из элемента управления выбора часового пояса. Всегда дайте пользователю способ выбрать желаемый часовой пояс. Это важно, так как часовой пояс, на котором в данный момент установлен компьютер, может быть или не быть часовым поясом, который они хотели бы использовать в вашем приложении. Например, для программного обеспечения для ведения календаря в Интернете (такого как Google Calendar или Outlook.com) обычно разрешается устанавливать часовой пояс в своем профиле пользователя.