PHP strtotime 函数 - 依赖系统的时区不安全?

Posted

技术标签:

【中文标题】PHP strtotime 函数 - 依赖系统的时区不安全?【英文标题】:PHP strtotime function - not safe to rely on system's timezone? 【发布时间】:2012-07-12 06:05:37 【问题描述】:

我想将日期 - 2012-05-25 转换为 unix 时间戳。当我使用 strtotime() 函数时,它说

php 警告:strtotime():依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第 323 行的 /var/www/html/__modules/tickets/library/Notification/RD_time.php 中为 'IST/5.0/no DST' 选择了 'Asia/Calcutta'。

请帮帮我。我需要在今晚之前刷新这些报告。

【问题讨论】:

【参考方案1】:

您可以在代码开头添加以下内容:

date_default_timezone_set('Africa/Lagos');//or change to whatever timezone you want

如果你想创建一次,你可以把时区放在你的 php.ini 文件中。你可以搜索date.timezone,你的php.ini文件里应该有这样的块:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Africa/Lagos

一定要重启服务器(service httpd restart 在 linux 上)。

时区列表可以在这里找到http://www.php.net/manual/en/timezones.php。

【讨论】:

【参考方案2】:

按照警告中的说明进行操作并使用date_default_timezone_set

例如:

date_default_timezone_set('America/New_York');

【讨论】:

以上是关于PHP strtotime 函数 - 依赖系统的时区不安全?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复与时区相关的 PHP 错误(function.strtotime 和 function.date)

PHP strtotime() 函数

PHP时间戳 strtotime()使用方法和技巧

Joomla 麻烦 strtotime()

PHP中日期函数

php中的date和strtotime函数妙用