Cake PHP时区错误



我在Cake上遇到了一个奇怪的问题。我住在德国。当我添加帖子时,"已创建"数据库字段中的时间是6小时后。例如,下午6点创建的帖子在数据库中显示为上午12点创建。我使用托管服务器,并联系了将php.ini设置为正确时区欧洲/柏林的公司。当我请求服务器php.ini时,它会正确显示时区"欧洲/柏林"。但是当我运行代码时

$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;

在CakePHP中,它显示

The current server timezone is: America/New_York

我已经试着在core.php中设置了:

date_default_timezone_set('Europe/Berlin');

但这根本没有任何效果。希望有人知道该怎么做。

编辑1:

在请求支持运行"locale-a"后,出现了以下内容:

# locale -a
C
de_DE
de_DE@euro
de_DE.iso88591
de_DE.iso885915@euro
de_DE.utf8
deutsch
en_US.utf8
german
POSIX

我认为服务器端的一切都很好,错误只是小菜一碟。但我不知道下一步该怎么办?也许有人可以帮忙。提前谢谢。

**编辑2:**

经过仔细查看,我在Usermanagement插件的bootstrap.php中发现了错误,该插件将时区设置为UTC。所以现在一切都很好。无论如何,谢谢你的帮助。

编辑:

如果做下面的答案没有效果(根据OP(,可能是这个问题:

很可能是上没有安装德语区域设置服务器上运行脚本-您是否有shell访问服务器然后尝试

locale-

查看安装了哪些区域设置。也看看这里是依赖setlocale和正在安装的locale是否可行?


TLDR:

你有一个正确的想法——把它放在你的Config/bootstrap.php中。而不是Config/core.php.

更多详细信息:

这可能与这个问题相同。答案是:

将其放入Config/bootstrap.hp:

date_default_timezone_set('UTC'(//或者不管你的时区是

它只是基于服务器时间,实际上与CakePHP-所以只需使用PHP更改默认时区,您就应该很高兴去。"created和modified将基于指定的时区。

重申一下,"created"one_answers"modified"字段基于服务器,与CakePHP没有太大关系(听起来您已经正确地假设了这一点(。

CakeTime::convert((是一个相关的项目(仅供参考(,但在这种情况下,它不是您想要的。

在app_controller中设置,而不是在code.php 中

问题已解决。问题出现在一个插件中,该插件也有config.php。在那里,Cake配置被覆盖了。现在一切都好了。

相关内容

  • 没有找到相关文章

最新更新