时刻语言环境设置不正确
我们试图找到使用moment.js的测试问题,并在亚利桑那州的服务器上运行时失败,但在英国本地运行时成功。我们在创建片刻之前手动设置区域设置,并可以看到已安装本地“en-gb”。时刻语言环境设置不正确
这捣鼓什么亮点,我认为这个问题是(需要计算机设置成首先亚利桑那时区!)https://jsfiddle.net/2ve10ax4/
moment.locale('en-gb');
console.log(moment.locale());
// en-gb
console.log(moment('2016-05-01T00:00:00+00:00').format());
// 2016-04-30T17:00:00-07:00
我期待看到对于格式化为“恩日期gb'语言环境,但它显示了亚利桑那州时间。我错过了什么吗?
阅读更多我相信parseZone是正确的解决方案,因为我已经在日期字符串中包括时区信息。
console.log(moment.parseZone('2016-05-01T00:00:00+00:00').format());
区域设置和时区是正交的东西。语言环境不会明确指定时区。你需要分别设置你的时区。您可以使用Momemt时区,然后您可以使用例如
.tz('Europe/London')
但我已明确指定通过日期格式的偏移? – tgrrr
'moment('2016-05-01T00:00:00 + 00:00')'创建一个新的时刻对象,它存储一个时刻。但是,当使用'.format()'时,它将显示在浏览器的时区中 - 在大多数情况下这是正确的。 – meskobalazs
谢谢。是的locale不是我所需要的! – tgrrr
通过设置moment.locale('en-gb')
您指定了区域设置/语言(brittish-english),而不是时区。
要指定您需要在您的项目Moment.js Timezone library一个时区,然后做一些事情,如:
console.log(moment('2016-05-01T00:00:00+00:00').tz('America/Phoenix').format());
上述会给你的亚利桑那州的时区。
在这种情况下,区域设置是错误的概念。我需要的是: 'moment.parseZone('2016-05-01T00:00:00 + 00:00')' – tgrrr