美国/菲尼克斯出现未知或中断的时区错误

时间:2019-09-09 作者:chb

在常规设置中,本地时间显示为等同于(正确的)UTC时间。enter image description here

错误下方不显示其他设置,也没有保存更改按钮。

在日志记录中,当我grep 对于选项列表中的时区,使用wp option list | grep -i zone:

PHP Warning:  timezone_open(): Unknown or bad timezone (America/Phoenix) in /var/www/union_made_sites/shirts/wp-includes/functions.php on line 5228
Warning: timezone_open(): Unknown or bad timezone (America/Phoenix) in /var/www/union_made_sites/shirts/wp-includes/functions.php on line 5228 
timezone_string America/Phoenix 
以下是包含以下php代码的测试文件的结果:

<?php
require_once("../../../../wp-load.php");
echo date(\'Y-m-d G:i:s\');
?>
<p>
<?php 
echo current_time(\'mysql\'); 
?>
<p>
<?php
echo "This is GMT Offset:";
echo get_option(\'gmt_offset\');
?>

enter image description here

我在Ubuntu上,我正在使用/etc/php/7.3/apache2/php.ini 要配置mod_php. 我已经定好日期了。在此文件中明确显示时区,如下所示:

date.timezone = "America/Phoenix"
我可以确认这一点.ini 文件通过加载phpinfo():enter image description here

所有活动插件都与日历或日程安排无关。

wp_options 数据库的表timezone_string 选项的值为America/Phoenix, 但是gmt_offset 是空字符串。

更新表格和设置gmt_offset-7 除了在“常规设置”屏幕中显示正确的本地时间外,没有任何改进;wp-cli 仍然会抛出相同的错误,显示有关“技术困难”的警告,并且“常规设置”屏幕的下半部分不会出现。

1 个回复
SO网友:chb

当我开始解决这个问题时,我发现gmt_offset 作为罪魁祸首,并认为服务器是可靠的。但在我更新了数据库中的gmt\\u偏移量值并且错误依然存在之后,我知道我错了。

一位管理员在一个WP论坛上发帖表示,尽管有一个有效的时区,但事情还是有问题。他的问题是时区的循环软链接(America/New_York 链接到EST, 它本身是一个软链接,链接回America/New_York). 读到这一点后,我确认在我自己的服务器上并非如此。

然而,回头检查系统时,我注意到,当我在另一个环境(工作正常)上比较时区文件的权限(是的,总是权限)时,我注意到工作环境(顶部)之间存在这种差异。。。

]# ls -alh /usr/share/zoneinfo/America/Phoenix 
lrwxrwxrwx 1 root root 15 Aug 31 13:40 /usr/share/zoneinfo/America/Phoenix -> ../SystemV/MST7
]# ls -alh /usr/share/zoneinfo/SystemV/MST7
-rw-r--r-- 1 root root 353 Jul  4 14:46 /usr/share/zoneinfo/SystemV/MST7

。。。问题服务器。。。

]# ls -alh /usr/share/zoneinfo/America/Phoenix
lrwxrwxrwx 1 root root 15 Jul  4 14:46 /usr/share/zoneinfo/America/Phoenix -> ../SystemV/MST7
]# ls -alh /usr/share/zoneinfo/SystemV/MST7
-rwxrw---- 1 root root 353 Jul  4 14:46 /usr/share/zoneinfo/SystemV/MST7
chmod 644 问题解决了。

相关推荐

Date, Time, and Timezones

我对在WordPress中使用日期/时间和时区有点困惑。我有以下问题:“管理->设置”部分中时区设置的目的是什么?假设当前格林尼治时间是20:00,假设我在东部时间(东部时间是16:00),那么博客的时间是如何节省的?假设一位读者正在阅读帖子,而他/她位于土耳其。所以他们的当地时间是23:00,他们认为23:00是发布时间吗?假设我使用的是自定义帖子类型,并且我有一个额外的日期/时间字段用于其他日期信息。如何确保自定义日期字段的行为与WordPress字段相同?对于这些基本问题,我深表歉意,但我真的