0

moment.tz("2019-11-03T06:45:01.000Z", "美国/芝加哥").toDate()

这会在 chrome 和 IE11 中返回“2019 年 11 月 3 日,01:45 CDT”,但在 IE10 中,我得到的输出是
“2019 年 11 月 2 日星期六 20:45:01 CDT”。

我观察到一些奇怪的东西,实际的格式问题从 moment-timezone-js 函数 tz 开始的地方

out = moment.utc.apply(null, "2019-11-03T06:45:01.000Z");

编辑-我稍后看到的控制台错误:尚未为此对象提供区域设置数据

4

1 回答 1

0

发生这种情况是因为 IE10 中没有加载语言环境数据,通过将语言环境动态导入并添加到浏览器中来解决这个问题。

解决我的问题的代码正在使用:

const locale = navigator.language
        || 'en-US';
const localeWithoutRegionCode = locale.toLowerCase().split('-')[0];
addLocaleData(require( `intl/locale-data/jsonp/${localeWithoutRegionCode}`));
于 2019-10-06T12:46:07.830 回答