Похоже, вы показываете какие-то тикающие часы, используя текущее время.Таким образом, я предполагаю, что вы имели в виду, как получить удобочитаемое имя местного часового пояса, чтобы связать его с текущим временем, для целей отображения вашему пользователю.
Есть несколько способов:
Извлечь его из выходных данных Date.toString
:
var d = new Date(); // Example:
var s = d.toString(); // "Tue May 14 2019 14:29:05 GMT-0700 (Pacific Daylight Time)"
var tz = s.match(/\((.*)\)/)[1]; // "Pacific Daylight Time"
Извлечь из выходных данных Date.toLocaleString
с указанным параметром timeZone
:
var d = new Date();
var opts = {timeZoneName: 'long'}; // Example:
var s1 = d.toLocaleString(undefined, opts); // "5/14/2019, 2:29:05 PM Pacific Daylight Time"
var s2 = d.toLocaleString(); // "5/14/2019, 2:29:05 PM"
var tz = s1.slice(-s2.length); // "Pacific Daylight Time"
Или, если вы предпочитаете короткое имя (обычно сокращение):
var d = new Date();
var opts = {timeZoneName: 'short'}; // Example:
var s1 = d.toLocaleString(undefined, opts); // "5/14/2019, 2:29:05 PM PDT"
var s2 = d.toLocaleString(); // "5/14/2019, 2:29:05 PM"
var tz = s1.slice(-s2.length); // "PDT"
Первый вариант, вероятно, самый простой,и обладает преимуществом простоты и работает во всех браузерах, включая действительно старые.
С другой стороны, если вы спрашивали, как получить идентификатор часового пояса IANA для местного часового пояса, то:
Intl.DateTimeFormat().resolvedOptions().timeZone // ex: "America/Los_Angeles"