PHP mktime()错误

时间:2013-07-22 00:58:41

标签: php date timezone mktime

当我使用Excel_Reader库将excel文件导入MySQL时,我突然在网站上收到以下错误。

这是mktime()生成的错误消息:

  

消息:mktime()[function.mktime]:依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们选择“亚洲/克拉斯诺亚尔斯克”代替“7.0 /无夏令时”

错误是由于以下行:

$string = date ($format, mktime($hours, $mins,$secs, 
                $dateinfo["mon"], $dateinfo["mday"], $dateinfo["year"]));

我目前正在使用PHP 5.3.1版。这个脚本与我的PHP版本不兼容吗?我该如何解决这个错误?

1 个答案:

答案 0 :(得分:2)

错误说明了一切。依赖系统的时区设置是一个坏主意,因此您需要使用以下选项之一指定时区。

您有三种解决方案:

  1. 使用date_default_timezone_set()

    在PHP脚本中设置默认时区
    date_default_timezone_set("America/Los_Angeles");
    
  2. 使用ini_set()设置默认时区:

    ini_set('date.timezone', 'America/Los_Angeles'); 
    
  3. date.timezone文件中将其定义为php.ini
  4. 文档:date_default_timezone_set() ini_set()

    希望这有帮助!