1

我可以设法更改 Heroku 上的时区,但它仍然比我的本地时间少一小时。任何人都可以帮助如何在 Heroku 上设置 DST(夏令时)偏移量吗?

4

2 回答 2

6

Heroku 应用程序在普通的 unix 系统上运行,并且那里有所有的 zoneinfo 文件。我也相当确定它们是最新的。

就 unix 而言,您应该能够使用以下内容设置您的 TZ env var:

$ heroku config:set TZ=Europe/Berlin

您可以使用以下命令查看有效的 zoneinfo 名称:

$ heroku run find /usr/share/zoneinfo/posix

不过,一般来说,您会希望在 UTC 环境中运行您的应用程序,并在内部处理时区,可能在每个用户的基础上处理本地时间。

我怀疑这可能无法完全回答您的问题。您可能想要扩展您想要实现的具体目标以及您如何尝试实现它,以及您如何观察“比本地少一小时”的效果。

于 2013-04-19T13:20:02.690 回答
0

我在 Heroku 的 Symfony 项目中遇到了与 php 和 DateTime() 类似的问题。我意识到中欧夏季日光变化后的时差。即使在 heroku 设置时区也不能解决问题:

$ heroku config:set TZ=Europe/Berlin

当我在服务器端读出 phpinfo() 的 UTC 设置时,我决定更改 Heroku 的 php.ini 设置。这是 Heroku 的一篇文章:

https://devcenter.heroku.com/articles/custom-php-settings#php-runtime-settings

通过将.user.ini文件添加到您的 Web 根目录,您可以调整应用程序的设置。例如,通过添加 date.time 设置:

date.timezone = Europe/Berlin

我知道这不是全球使用的最佳解决方案,但到目前为止它仍然有效,而且我的 symfony 应用程序现在只对中欧很重要。

于 2018-04-07T22:03:19.207 回答