2012-01-06 82 views
6

我歌厅时,我只是做的phpinfo()设置默认的时区不,尽管时区的工作是有效的

警告:phpinfo()函数:这是不是安全的依靠系统的时区设置。您需要需要才能使用date.timezone设置或date_default_timezone_set()函数。如果您使用这些方法中的任何一种,并且仍然收到此警告,则很可能是拼写错误的时区标识符。我们选择了 '欧洲/赫尔辛基' 的 'EET/2.0 /没有DST' 相反在上线/myadmin/i.php 8

这里是i.php:

<?php 
//echo date_default_timezone_get(); 

date_default_timezone_set("Europe/Kiev"); 

//echo date("l"); 

phpinfo(); 
?> 

,正如你所看,当我做date_default_timezone_set( “欧洲/基辅”),我得到:

注意:date_default_timezone_set():时区ID '欧洲/基辅' 无效的/myadmin/i.php第4行

我敢肯定,我使用的有效时区字符串从here,我也设置:

date.timezone =欧洲/基辅

在php.ini文件。

环境:CentOS 6的响应,Nginx/1.1.11,PHP 5.3.8(FPM-FCGI)

我实在无法理解什么是一个问题。 谢谢。

+0

什么'date_default_timezone_set( '欧洲/基辅');'返回?它[应](http://nl3.php.net/date_default_timezone_set)在成功时返回“true”,在失败时返回“false”。 – bouke 2012-01-06 18:39:51

+0

它返回布尔(假) – Denys 2012-01-06 18:55:47

+0

做任何其他时区的工作?你可以尝试在http://php.net/manual/en/datetimezone.listidentifiers.php上给出的例子来打印所有支持的时区? – Gordon 2012-01-06 19:14:50

回答

6

感谢评论,我能解决我的问题。我做了什么,在控制台:

#yum install php-pear 

#pecl install timezonedb 

它需要C编译器:

configure: error: no acceptable C compiler found in $PATH 

...所以我所做的:

#yum install gcc 

此外, 如果你得到一个错误关于make命令,只需运行

#yum install make 

最后,再试一次:

#pecl install timezonedb 

...它显示在最后:

You should add "extension=timezonedb.so" to php.ini 

我补充说: “延长= timezonedb.so” 为/etc/php.ini并重新启动PHP- fpm:

#/etc/init.d/php-fpm restart 
+0

运行pecl之前,你需要phpize,它要安装php-devel #yum install php-devel – 2016-06-23 08:30:12

0

若要扩展futureboxlab的解决方案,如果您没有安装make,可能会遇到有关'make'命令的其他错误。 在你只需要运行

#yum install make 

然后,再次证明情况下(第三次是魅力)

#pecl install timezonedb