2012-01-06 84 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