2011-02-03 16 views
23

Kiedy date.timezone w php.ini jest wypowiedziało się, że daje mi:Jak ustawić date.timezone dla codeigniter pracować php5.3

PHP Błąd wystąpił

Istotność : Ostrzeżenie:

Wiadomość: główna(): Nie jest bezpieczne dla polegać na ustawieniach strefy czasowej systemu . Jesteś wymagany do używania ustawienia date.timezone lub date_default_timezone_set(). Jeśli korzystasz z którejkolwiek z tych metod, i nadal otrzymujesz to ostrzeżenie o numerze , najprawdopodobniej wpisano błędnie identyfikator strefy czasowej. Wybraliśmy 'America/Los_Angeles' dla '-8.0/nie DST' zamiast

Filename: controllers/helloworld.php

Ilość

Linia: 2

Kiedy mam

date.timezone = "America/Los_Angeles" 

Daje mi to:

Błąd serwera Strona napotkała błąd podczas pobierania http://localhost/ci/index.php/helloworld. Może być on niepoprawnie skonfigurowany lub niepoprawnie skonfigurowany . Oto kilka propozycji: : Przeładuj tę stronę później: . Błąd HTTP 500 (błąd wewnętrzny serwera ): nieoczekiwany warunek: napotkano podczas próby spełnienia żądania przez serwer .

Używam php5.3, program do generowania kodu 2.0.0 i Apache2.2. Czy ktoś ma ten problem?

Aktualizacja 1: Próbowałem ładowania test.php bez codeigniter, gdzie pierwsze 3 linie test.php jest

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

i działa dobrze, różne strefy czasowe również działa zbyt dobrze. Podejrzewam, że problem pochodzi z zapalnika kodu ... Czy ktoś używa tutaj zapalnika kodu?

Odpowiedz

70

Jeśli Googled „CodeIgniter PHP 5.3” byś znalazł ten artykuł, dość szybko :)

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

Aby rozwiązać ten problem, tylko trzeba edytować główny indeks.PHP dla aplikacji CodeIgniter:

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

Ta modyfikacja jest czymś, prawdopodobnie będzie konieczne, aby dla każdej aplikacji uruchomionej na CodeIgniter PHP 5.3 i mogą być łatwo modyfikowane do lokalnej strefy czasowej. Istnieje pełna lista obsługiwanych stref czasowych w instrukcji PHP here.

+1

Próbowałem też. Otrzymuję ten sam komunikat o błędzie serwera co ustawienie date.timezone bezpośrednio w php.ini – Snowfish

+0

Sprawdź w dziennikach PHP. 500 z PHP jest dość rzadkie. –

+0

Nadal nie mogę znaleźć rozwiązania, ale dziękuję za pomoc! Sprawdziłem logi, ale nie znalazłem nic przydatnego (a może sprawdzam zły log). Jednak odkryłem, że program uruchamiający kod nie obsługuje w pełni php5. W rezultacie zdecydowałem się zrezygnować z zapalnika kodu. W każdym razie, dzięki za pomoc. – Snowfish

3

data.timezone jest przeznaczona do umieszczenia w pliku php.ini lub .htaccess.

możesz zrobić ini_set('date.timezone', 'America/Los_Angeles'); w pierwszym wierszu skryptu i uzyskać pożądane wyniki.

+0

Używam zapalnika kodu, więc pierwsza linia mojego skryptu oznacza index.php pod moim folderem CI r? – Snowfish

+0

@fishfish, tak ... to jest dokładnie to samo rozwiązanie, które napisałem:/ –

+0

Mam do czynienia z tym samym problemem. Wszystkie te zmiany wprowadziłem w pliku index.php oraz php.ini. Ale wciąż pokazuje czas serwera. Pomóż mi rozwiązać ten problem. –

22

Tak, jeśli nie można bezpośrednio edytować plik php.ini, wprowadzania ...

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

... jako pierwsza linia w pliku index.php CI działa dobrze.

referencyjny: PHP's Available Timezones

+4

To działało idealnie dla mnie, umieściłem go index.php – Amitabh

4

jest to prosty sposób to zrobić

$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

napisać w swojej index.php CodeIgniter ...

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

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

działa dobrze w moim CodeIgniter