我可以设法更改Heroku上的时区,但仍然比当地时间少一个小时。 任何人都可以帮助如何在Heroku上设置DST(夏令时)偏移?
答案 0 :(得分:4)
Heroku应用程序在普通的unix系统上运行,并且您拥有所有的zoneinfo文件。我也很确定他们是最新的。
就unix而言,你应该可以设置你的TZ env var:
$ heroku config:set TZ=Europe/Berlin
您可以使用以下命令查看有效的zoneinfo名称:
$ heroku run find /usr/share/zoneinfo/posix
但一般来说,您需要在UTC环境中运行应用程序,并在内部处理时区,可能会在每个用户的基础上处理本地时间。
我怀疑这可能不能完全回答你的问题。您可能希望扩展您正在尝试实现的目标,以及您如何实现目标,以及您如何观察“比本地更少的一小时”效果。
答案 1 :(得分: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 文件添加到您的网络根目录,您可以调整应用的设置。例如。通过添加date.time设置:
date.timezone = Europe/Berlin
我知道这不是全球使用的最佳解决方案,但它到目前为止工作,我的symfony应用程序现在只对中欧非常重要。