我想用时刻的guess()函数 https://momentjs.com/timezone/docs/#/using-timezones/guessing-user-timezone/返回时区大陆(或国家)和城市,如示例所示:
moment.tz.guess(); // America/Chicago
但上面的方法不起作用。返回值为CET
,这是另一回事。它是中欧时间的缩写,即没有大陆国家,没有城市。
我该如何使用guess()
返回“欧洲/斯德哥尔摩”、“美国/芝加哥”等的函数?
当主机环境(浏览器等)实现 ECMA-402 的 API 但在结果中返回错误类型的时区时,就会发生这种情况。如果您在使用 Moment 时看到了这一点,那么您也可能在不使用 Moment 的情况下获得此结果,如下所示:
Intl.DateTimeFormat().resolvedOptions().timeZone
目前,Moment 假设如果此 API 存在,则它要么提供有效的 IANA 时区标识符,要么返回undefined
。但是,某些环境会返回类似的内容CET
正如你所指出的。
忽略不良结果已被记录为功能请求时刻/时刻时区#423 https://github.com/moment/moment-timezone/issues/423。在该特定情况下,环境是 Android 设备上较旧的 Chrome 浏览器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)