使用 JavaScript 获取时区缩写
Get the Time Zone Abbreviation using JavaScript
使用toLocaleDateString
方法获取时区缩写。该方法可以传递一个options
对象,其中timeZoneName
属性可以设置short
为获取时区缩写。
索引.js
// 👇️ GMT+2 (with locale en-US) console.log( new Date() .toLocaleDateString('en-US', { day: '2-digit', timeZoneName: 'short', }) .slice(4), ); // 👇️ OEZ (with locale de-DE) console.log( new Date() .toLocaleDateString('de-DE', { day: '2-digit', timeZoneName: 'short', }) .slice(4), ); // 👇️ "Europe/Sofia" console.log(Intl.DateTimeFormat().resolvedOptions().timeZone);
我们使用
toLocaleDateString
方法获取访问者默认时区的缩写。
我们传递给该方法的 2 个参数是:
locales
– 带有 BCP 47 语言标记的字符串或此类字符串的数组。您可以使用任何可用的语言环境,例如es-MX
墨西哥或en-CA
加拿大。如果您需要有关此参数的更多信息,请查看
MDN 文档。options
对象,我们在其中设置day
和timeZoneName
属性。在MDN 文档中阅读有关该options
对象的
更多信息。
该timeZoneName
属性表示本地化时区名称,可以设置为long
或的值short
。
下面是当timeZoneName
属性值为
时输出的样子long
。
索引.js
// 👇️ Eastern European Standard Time (en-US locale) console.log( new Date() .toLocaleDateString('en-US', { day: '2-digit', timeZoneName: 'long', }) .slice(4), ); // 👇️ Osteuropaeische Normalzeit (de-DE locale) console.log( new Date() .toLocaleDateString('de-DE', { day: '2-digit', timeZoneName: 'long', }) .slice(4), );
我们还将day
属性设置为2-digit
,我们用它从字符串中切掉日期部分,只返回时区名称。
Intl.DateTimeFormat
如果需要获取访问者所在时区的全名,可以使用该方法。
索引.js
// 👇️ "Europe/Sofia" console.log(Intl.DateTimeFormat().resolvedOptions().timeZone);
resolvedOptions方法返回一个对象,该
对象具有一个timeZone
属性,代表访问者的默认时区。