我有一个时间戳列'submitted_on',默认为now()。 我已将heroku TZ设置为我的区域,并添加了一个具有相同时区的php用户ini。
但数据库仍在使用UTC时区。我在运行这个sql时看到了这个:
show timezone
;
有修复吗?或者这是heroku数据库的工作方式?我也在使用免费的dynos。
答案 0 :(得分:1)
创建数据库集群时确定参数timezone
。
您可以更改postgresql.conf
中的值,也可以使用ALTER SYSTEM
作为超级用户来更改值。
我不知道Heroku是否允许您使用这些选项。
答案 1 :(得分:1)
设置TZ
config var仅影响Dynos环境,因为数据库位于不同的计算机上,它不起作用。
一般来说,您应始终保持服务器时钟在UTC上运行,所有时间都以UTC格式存储,并在应用程序框架中执行任何时区/语言环境更改。