Используя moment.js с дополнением moment-timezone, вы можете сделать следующее. Результаты будут согласованы независимо от браузера или операционной системы, поскольку аббревиатуры указаны в данных, предоставленных библиотекой.
Результаты примеров взяты из компьютера, установленного в часовом поясе США Тихого океана:
var zone = moment.tz.guess(); // "America/Los_Angeles"
var abbr = moment.tz(zone).format("z"); // either "PST" or "PDT", depending on when run
ОТКАЗ
часового пояса сокращения не являются надежными и последовательными. Существует много разных listsofthem, и есть много двусмысленностей, таких как «CST», для Центрального стандартного времени, стандартного времени Кубы и стандартного времени в Китае. В общем, вам следует избегать их использования, и вы должны никогда разобрать их.
Кроме того, аббревиатуры в момент-времени относятся к IANA TZ Database. В последних изданиях этих данных многие «изобретенные» аббревиатуры вместо этого заменены численными смещениями. Например, если часовой пояс вашего пользователя равен Asia/Vladivostok
, вместо получения "VLAT"
, как у вас может быть в предыдущих версиях, вместо этого вы получите "+10"
. Это связано с тем, что аббревиатура «VLAT» была первоначально изобретена базой данных tz для заполнения данных и фактически не используется лицами в этом районе. Имейте в виду, что аббревиатуры всегда находятся на английском языке - даже в тех областях, где могут использоваться фактические использования других сокращений языка.
afaik это невозможно. Вы можете получить смещение часового пояса, но с '(новая дата) .getTimezoneOffset()'; – Christoph
@ Кристоф Вы уверены, что это невозможно? –
Вы должны иметь возможность делать это только с помощью объекта Date и RegEx. Что-то вроде Date(). Match (/['\\(']...['\\)']/) – DottedT