如果我在本地服务器上运行此代码:
date_default_timezone_set('America/Los_Angeles');
echo date('Y-m-d H:i:s');
然后我得到了正确的时间。但是,如果我在客户端的开发服务器上运行它,那么它会提前一小时显示。这就像我的客户服务器认为它是在标准时间而不是夏令时。
可能导致此问题的原因是什么?
编辑:
zdump -v America/Los_Angeles | grep 2018
的输出是:
America/Los_Angeles Sun Mar 11 09:59:59 2018 UTC = Sun Mar 11 01:59:59 2018 PST isdst=0 gmtoff=-28800
America/Los_Angeles Sun Mar 11 10:00:00 2018 UTC = Sun Mar 11 03:00:00 2018 PDT isdst=1 gmtoff=-25200
America/Los_Angeles Sun Nov 4 08:59:59 2018 UTC = Sun Nov 4 01:59:59 2018 PDT isdst=1 gmtoff=-25200
America/Los_Angeles Sun Nov 4 09:00:00 2018 UTC = Sun Nov 4 01:00:00 2018 PST isdst=0 gmtoff=-28800
您可能需要检查操作系统本身的时间设置。
This website提供以下提示:
请记住,首先PHP从操作系统中获取时间。您必须正确设置操作系统的时间,时区和DST设置,否则无论您在脚本中执行何种计算,PHP都不会显示正确的时间。