Невозможно надежно получить настройки часового пояса клиента из браузера на стороне клиента или .
Вы можете из JavaScript получить смещение текущего часового пояса из UTC, используя Date#getTimezoneOffset
. Это не однозначно идентифицирует часовой пояс, так как есть много зон, которые могут использовать одно и то же смещение UTC, плюс много регионов, которые переключают часовые пояса в летнее время.
Иногда вы можете получить строку, представляющую короткое имя часового пояса, вызвав Date#toLocaleString
. Там нет никакой гарантии, что будет название используемого часового пояса, и имена часовых поясов не являются глобально уникальными, и иногда браузер лжет (особенно о DST). Но часто есть что-то , и если вы можете связать эту аббревиатуру со смещением, которое вы уже прочитали, и сравнить его с коротким списком известных правил часового пояса, это даст вам хорошее первое предположение. Вы также можете добавить географический IP-таргетинг и использование на стороне сервера заголовка Accept-Language
, чтобы лучше угадывать.
Если пользователям важно видеть подходящее местное время, вам нужно будет предоставить им ручной механизм выбора языка правил часового пояса (например, в качестве настройки для каждой учетной записи), поскольку ни одно из этих действий не является надежным.