在WordPress中显示错误时间的PHP函数

时间:2017-02-21 作者:MattWithAHat

我在XAMPP上安装的本地WordPress似乎有一个错误的时间设置。当我这样做的时候

date( \'Y-m-d H:i:s\' );
我明白了2017-02-21 10:46:43 因此。然而,我的电脑时间2017-02-21 11:46:43, 所以我的WordPress落后了一个小时。

现在我已经做了,推荐什么here 和已更改date.timezonephp.ini 然后重新启动apache,因为我认为问题可能是由XAMPP引起的。但我还是显示了错误的时间。

我还去了settings -> general 并将那里的时区更改为正确的时区。显示的当地时间正确:

“当地时间2017-02-21 11:46:43”

但是当我使用这个函数时,它仍然是错误的。你知道还有什么会导致这个问题吗?

3 个回复
SO网友:fischi

date() 是一个PHP 功能取决于您的服务器设置。您可以使用WordPress函数来解决这个问题:

current_time( \'Y-m-d H:i:s\' );
此功能接受中的设置wp-admin 考虑在内。

SO网友:Anwer AR

使用wordpress功能根据wordpress设置和时区获取时间,例如the_timethe_date

 the_date(\'F j, Y\');
 the_time(\'g:i a\');

SO网友:ender.center

Wordpress似乎覆盖了php时区,将所有日期保存为UTC。但他们在将其转换回当地时间方面也做得很差。

我遇到了同样的问题,并进行了一些测试以找到解决方案。

首先,这不是PHP时区问题,为了证实这一点,我进行了测试。php进入我的主题文件夹并直接打开它(/wp-content/themes/theme/test.php)

如果在此文件中使用date()函数,则时间是正确的。

但如果我把这句话放进我的主题家里。php

print date(\'Y-m-d H:i:s\');
print current_time(\'Y-m-d H:i:s\');
我访问主页的时间错了。

date()返回UTC,current\\u time()返回正确时区的时间,但不包括DST,因此我还有1小时的休息时间。

我最后做的是:

$row = $wpdb->get_row( "SELECT CURRENT_TIMESTAMP() AS timestamp", ARRAY_A);
$timestamp = $row[\'timestamp\'];
如果您的数据库具有正确的时区配置,则可以向数据库询问时间戳。

但这也有一些缺点,只有当您的数据库有正确的时区并且它总是对数据库进行查询时,它才会起作用,所以您不应该过度使用它。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请