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\'];
如果您的数据库具有正确的时区配置,则可以向数据库询问时间戳。
但这也有一些缺点,只有当您的数据库有正确的时区并且它总是对数据库进行查询时,它才会起作用,所以您不应该过度使用它。