【问题标题】:PHP Mktime errorPHP Mktime 错误
【发布时间】:2011-07-17 22:40:51
【问题描述】:

我在一个我已经完成的网站上突然收到以下错误,到目前为止它运行良好:

A PHP Error was encountered

Severity: Warning

Message: mktime() [function.mktime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Antarctica/Macquarie' for 'EST/10.0/no DST' instead

这是有问题的代码:

$stamp=mktime(0,0,0,$month,$day,$year);

这里有什么问题?我怎样才能快速消除这些错误?我在很多地方都使用这种格式的mktime,并且在每个地方都会抛出错误。

【问题讨论】:

    标签: php mktime


    【解决方案1】:

    正如错误所说,您需要在代码中使用date_default_timezone_set('Antarctica/Macquarie');ini_set('date.timezone', 'Antarctica/Macquarie'); 指定时区,或者在php.ini 中定义date.timezone

    【讨论】:

    • 您能否提供我需要在 php.ini 文件中使用的代码?
    • 我不建议这样做,尤其是在生产环境中。但是,如果这只是你为了好玩而做的事情,或者你可以压制警告,比如:$stamp = @mktime(0,0,0,$month,$day,$year); 不过养成这样的习惯并不是一件好事。所以你可能应该修复你的 php.ini
    • @PaulPRO - 时间戳是处理日期时的一个重要概念,特别是因为时间戳基于 Unix 纪元(即 GMT)。除非绝对必要,否则应该从不隐藏错误消息。
    • @Click Upvote - 如果您更改php.ini,请确保重新启动您的网络服务器,因为更改只会在重新启动时生效。
    【解决方案2】:

    您能否确认 $month$day$year 是 INT - 甚至不是 NULL?

    还可以查看date_default_timezone_set()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      相关资源
      最近更新 更多