2011-02-03 27 views
23

上班的時候在php.ini中date.timezone被註釋掉了,它給了我:如何設置date.timezone代碼點火器與PHP5.3

遇到

一個PHP錯誤

嚴重性:警告

消息:main(): 依賴於系統的時區 設置不安全。您需要需要才能使用 date.timezone設置或 date_default_timezone_set()函數。 如果您使用任何這些方法 並且您仍然收到此 警告,則很可能是拼寫錯誤 時區標識符。我們選擇 '美國/洛杉磯' 爲 '-8.0 /無 DST',而不是

文件名:控制器/ helloworld.php

行號:2

當我有

date.timezone = "America/Los_Angeles" 

它給我這個:

服務器錯誤網站遇到 錯誤,同時檢索 http://localhost/ci/index.php/helloworld。 可能是由於維護造成的,或者 配置不正確。這裏有一些 意見建議:稍後重新加載此網頁 。 HTTP錯誤500(內部服務器 錯誤):當服務器嘗試完成請求時遇到了 時遇到意外情況 。

我使用php5.3,代碼點燃器2.0.0和Apache2.2。任何人都有這個問題嗎?

更新1: 我試圖加載test.php的無代碼點火器,其中test.php的前3行是

date_default_timezone_set('America/Los_Angeles'); 
echo date("l j \of F Y h:i:s A"); 

,它工作正常,不同的時區也能正常工作了。 所以我懷疑問題是來自代碼點火器... 任何人在這裏使用代碼點火器?

回答

70

如果你用Google搜索「笨PHP 5.3」你會發現這篇文章很快:)

http://philsturgeon.co.uk/blog/2009/12/CodeIgniter-on-PHP-5.3

要解決這個問題,你只需要編輯的主要指標。PHP的爲您的CodeIgniter應用程序:

if(! ini_get('date.timezone')) 
{ 
    date_default_timezone_set('GMT'); 
} 

此修改是你可能會需要爲在PHP 5.3中運行的任何應用程序的CodeIgniter並可以很容易地修改,以當地時區的東西。在PHP手冊here中有一個支持時區的完整列表。

3

date.timezone是打算去你的php.ini或.htaccess文件。

你可以在腳本的第一行中做一個ini_set('date.timezone', 'America/Los_Angeles');並獲得所需的結果。

+0

我正在使用代碼點火器,所以我的腳本的第一行意味着我CI配置下的index.php R' – Snowfish 2011-02-03 06:39:38

+0

@snowfish,是的...這是我發佈的完全相同的解決方案:/ – 2012-01-02 17:37:19

+0

我面臨同樣的問題。我在index.php和php.ini中做了所有這些更改。但它仍然顯示服務器時間。請幫我解決這個問題。 – 2013-06-12 06:49:29

22

是的,如果你不能直接編輯php.ini文件,將...

ini_set('date.timezone', 'America/New_York'); 

...在CI的index.php的第一線工作正常。

參考:PHP's Available Timezones

4

,這是簡單的方法來做到這一點在你的index.php笨

$timezone = "Asia/Calcutta"; 
if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone); 
//echo date('d-m-Y H:i:s'); 

$localtime=date('H:i:s'); 

$sql="INSERT INTO hits (ip,edate,curtime,page_name) VALUES ('$ip', CURDATE(),'$localtime','$filename') "; 
8

寫...

/* 
|--------------------------------------------------------------- 
| TimeZone 
|--------------------------------------------------------------- 
| 
| default Time Zone 
| 

*/ 
if (function_exists('date_default_timezone_set')) 
date_default_timezone_set('Asia/Jakarta'); 

在我笨運行效果良好