Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示错误时区的网站_Php_Wordpress_Ubuntu_Nginx_Timezone - Fatal编程技术网

Php 显示错误时区的网站

Php 显示错误时区的网站,php,wordpress,ubuntu,nginx,timezone,Php,Wordpress,Ubuntu,Nginx,Timezone,我一直在为这件事伤脑筋 服务器位置:旧金山 服务器配置:Ubuntu+LEMP 应用程序:Wordpress 好的,我将Ubuntu的时间设置为当前时间,并将时区更改为HST,这是Im所在的时区,然后重新启动了cron 我将php.ini时区设置为Pacific/Honolulu,并将Wordpress设置/时区设置为Pacific/Honolulu 重新启动nginx和php 但是当我 它显示UTC 我遗漏了什么吗?救命啊 试试下面的内容 <?php date_default_ti

我一直在为这件事伤脑筋

  • 服务器位置:旧金山
  • 服务器配置:Ubuntu+LEMP
  • 应用程序:Wordpress
好的,我将Ubuntu的时间设置为当前时间,并将时区更改为HST,这是Im所在的时区,然后重新启动了cron

我将php.ini时区设置为Pacific/Honolulu,并将Wordpress设置/时区设置为Pacific/Honolulu

重新启动nginx和php

但是当我

它显示UTC

我遗漏了什么吗?救命啊

试试下面的内容

<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
?>

在脚本中设置timzone

date_default_timezone_set('PST');
date('e');

最初启动nginx时,您的系统时区设置为什么

您是否确实关闭了nginx,然后从头开始启动它,或者只是让它重新读取其配置文件?(仅供参考:流行的
cat/var/run/nginx.pid | xargs kill-HUP
不会导致重启。)


您的最佳选择可能是执行类似于
sudo sh-c“cat/usr/share/zoneinfo/Pacific/honolu>/etc/localtime”的操作,从各个应用程序中删除任何时区,然后正确关闭并启动整个服务器。

php.ini
文件中,确保设置:

date.timezone=“美国/洛杉矶”

然后使用以下命令将服务器时间更改为适当的时区:


sudo dpkg重新配置tzdata

迟做总比不做好,所以我在这里插话。这实际上是WordPress和一个奇怪的决定,将默认时区设置回UTC,而不管您的INI设置是什么。这个可爱的宝石可以在中找到(链接是用于主干版本的,标记线可能在将来关闭)

我想他们这样做是为了让他们的内部时间计算变得简单,并且有一个共同的基础。我确实理解这背后的意图,但仍然认为这很尴尬,肯定给用户和开发人员(像我刚才一样)带来了很多困惑和麻烦。他们可以把它放在内部

无论如何,底线是:当你在一个主题或插件或任何东西中进行自己的时间计算时,一定要事先明确设置时区

仅仅是使用
time()
并认为自己很好,可能会让人头疼。您可以通过
get\u选项('timezone\u string')
获取设置面板中设置的内容,例如,将其与
date\u default\u timezone\u set
结合使用


Weston Ruter还建议使用PHP的日期和时间相关类,并显式设置它们的时区。

ubuntu系统在哪里?服务器时间可能设置不正确。这是您的服务器、共享服务器等;您是否已完成日期默认时区设置('HNL');//或者,不管时区名称是什么,我都尝试过了,但我不明白为什么当ubuntu、php和wordpress设置为HST时,它会显示UTC