PHP localtime() 在 Apache 执行时不正确
PHP localtime() incorrect when executed by Apache
我正在尝试编写一个 php 脚本,该脚本使用
获取当前本地时间
localtime(time(), true);
请务必将此时间设置为与服务器上的本地时间相同,即 Europe/London,因为有一个 crontab 每小时调用一次此脚本。考虑到夏令时也很重要。
我服务器上的时钟是正确的,当我 运行 PHP 交互式 shell 上的函数时,返回正确的时间,但是当 Apache 运行 是脚本,它报告 落后 一个小时,并且 tm_isdst 记录 falsey。
我已经检查了我的 Apache php.ini 文件,我确信它是正确的文件,因为我已经检查过 phpinfo(),但是也许有其他文件覆盖它?
我也试过重新加载和重启 Apache(成功),但是它仍然没有考虑正确的时间。
非常感谢您的帮助。
您有很多选择,但最常见的是以下两个:
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');
?>
我正在尝试编写一个 php 脚本,该脚本使用
获取当前本地时间localtime(time(), true);
请务必将此时间设置为与服务器上的本地时间相同,即 Europe/London,因为有一个 crontab 每小时调用一次此脚本。考虑到夏令时也很重要。
我服务器上的时钟是正确的,当我 运行 PHP 交互式 shell 上的函数时,返回正确的时间,但是当 Apache 运行 是脚本,它报告 落后 一个小时,并且 tm_isdst 记录 falsey。
我已经检查了我的 Apache php.ini 文件,我确信它是正确的文件,因为我已经检查过 phpinfo(),但是也许有其他文件覆盖它?
我也试过重新加载和重启 Apache(成功),但是它仍然没有考虑正确的时间。
非常感谢您的帮助。
您有很多选择,但最常见的是以下两个:
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');
?>