时间错误地显示在Heroku上,但正确地在localhost上使用时刻

时间:2017-08-04 06:59:43

标签: javascript heroku momentjs

我已经坚持了这个问题将近5个小时!在网上尝试了很多解决方案并且用尽了所有这些但是无济于事。非常感谢任何形式的帮助!

我的localhost上有一个字符串:

datestring = 'Fri, 04 Aug 2017 14:15:17 GMT' 

通过它会让我:

datestring = moment.utc(datestring).format('LLLL')
>> Friday, August 4, 2017 2:15 PM

这在我的localhost上显示,这是正确的。但是,当我将它部署到Heroku时,日期和时间会出错:

>> Thursday, August 3, 2017 6:24 PM

我的时区是UTC +8。我认为通过使用moment.utc函数,它已经标准化了日期时间,因此Heroku上显示的时间也应该是UTC +8。

在网上查看了一些解决方案后,我还将heroku中的TZ配置变量设置为亚洲/新加坡,以确保Heroku处于UTC +8时区。

我怀疑这是否是由于Heroku服务器位于美国,因此导致了这种差异。

有人能指出我正确的解决方案吗?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

Heroku默认使用UTC。要更改此设置,请使用TZ数据库时区格式(http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

设置首选时区

例如,太平洋时间:

$ heroku config:add TZ="America/Los_Angeles"