我试图编写一个使用
获取当前本地时间的php脚本localtime(time(), true);
将此时间设置为与服务器上的本地时间(欧洲/伦敦)相同非常重要,因为有一个crontab每小时调用一次此脚本。此外,重要的是要考虑夏令时。
我的服务器上的时钟是正确的,当我在PHP交互式shell上运行该函数时,会返回正确的时间,但是当Apache运行脚本时,它会在后面一小时报告,并且 tm_isdst 记录 falsey 。
我已经检查了我的Apache php.ini文件,我确定它是正确的文件,因为我已经检查了phpinfo(),但是也许有其他文件覆盖了这个?
我也尝试重新加载并重启Apache(成功),但它仍然没有考虑到正确的时间。
非常感谢您的帮助。
答案 0 :(得分:1)
你有很多选择,但最常见的选择是这两个:
<强> 1。列出要检查的变量
检查你的php.ini中是否使用<?php phpinfo(); ?>
设置时区然后在空文件中添加该函数,文件名即 phpInfo.php 并通过web环境请求该文件
您必须搜索此变量date.timezone=
。然后尝试在本地php.ini文件中添加它。有关PHP.Net的更多信息。如果您无法访问php.ini文件,请转到步骤2.
<强> 2。直接在您的php文件中添加时区
如果您正在使用任何类型的MVC或同时使用任何类型的引导文件的应用程序,那么您最好的选择是不将date_default_timezone_set();
添加到您正在调用的第一个php文件中。 Timezones Supported in EU
进行简单测试以查看时区是否发生变化
<?php
date_default_timezone_set('Europe/London');
echo date('Y-m-d H:i:s');
?>