【发布时间】:2012-02-04 11:08:29
【问题描述】:
我只是在做 phpinfo() 时得到的
警告:phpinfo():依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第 8 行的 /myadmin/i.php 中为“EET/2.0/no DST”选择了“Europe/Helsinki”
这里是 i.php:
<?php
//echo date_default_timezone_get();
date_default_timezone_set("Europe/Kiev");
//echo date("l");
phpinfo();
?>
如您所见,当我执行 date_default_timezone_set("Europe/Kiev") 时,我得到:
注意:date_default_timezone_set():时区 ID 'Europe/Kiev' 在 /myadmin/i.php 第 4 行无效
我确定我使用的是来自here 的有效时区字符串,并且我确实设置了:
date.timezone = 欧洲/基辅
在 php.ini 文件中。
环境:CentOS 6,nginx/1.1.11,PHP 5.3.8 (fpm-fcgi)
我真的不明白这是怎么回事。 谢谢。
【问题讨论】:
-
date_default_timezone_set('Europe/Kiev');返回什么? should 成功返回true,失败返回false。 -
其他时区有效吗?你可以试试php.net/manual/en/datetimezone.listidentifiers.php 给出的例子来打印所有支持的时区吗?
-
不知何故 DateTimeZone::listIdentifiers() 返回 array(0) { } HOW ?
-
"可以通过 PECL 的 » timezonedb 安装最新版本的时区数据库。"
-
php 使用的时区数据库 (Olson DB) 存在一些法律问题。但是我不知道这对 PHP 有什么影响。
标签: php timezone centos centos6