无法在管理和前端模板中设置正确的时间

时间:2013-05-30 作者:Derfder

当我运行一个名为test的简单php文件时。php(位于wp安装的根目录中)包含以下内容:

<?php echo date(\'H:i:s\'); ?>
结果是正确的:15:30:00 时区也正确设置为欧洲/布拉格,即UTC+2时间

但是,如果我在模板的页脚或侧边栏甚至索引文件中放置相同的行,则结果是13:30:00 这是UTC时间。

在WP admin中的自定义插件中也是如此。时间晚了两个小时。

管理选项中的时间已正确设置为UTC+2。

有趣的是,如果我创建一个新的帖子或页面,时间是15:30:00。我不明白。

知道为什么会这样吗?

我有最新的新WP安装。3.5.1 CZ版本,未安装任何插件。

UPDATE:

我试过使用WP函数date_i18n() 例如:<?php echo date_i18n(\'H:i:s\'); ?> 它正在按预期工作。

但是:<?php echo date(\'H:i:s\'); ?> 但它仍然不能正常工作。但在wordpress之外date() 工作正常。

为什么会这样?为什么wordpress搞砸了date() 作用

2 个回复
SO网友:GhostToast

WordPress使用GMT。唯一的解决方法是declare a new timezone 标题后用于您自己的目的。有点疼。

另请参见以下答案:How to get WordPress Time Zone setting?

SO网友:John Blackbourn

这里公认的答案并不是最好的方法。您应该使用WordPress\'current_time() 功能。在运行时更改时区可能会产生意外的后果,因为WordPress将其标准化为(并期望)UTC。

如果需要将现有UTC日期转换为本地时区,请参阅Converting timestamps to local time.

结束