2011-12-27 16 views
11

W moim przypadku, zarówno serwer, jak i klient, są tym samym komputerem, jestem na localhost. Kiedy wyślę echo daty z funkcji date(), wyświetlona zostanie całkowicie błędna wartość, 11 godzin wcześniej. Próbowałem również gmdate(), ale wyświetla datę w AM nie PM. Czy jest jakikolwiek sposób na zmianę czasu serwera apache, więc za każdym razem, gdy otrzymam go w php, wyświetla się on tak samo jak czas na moim komputerze?Jak zmienić czas na serwerze apache, aby odpowiadał czasowi komputera (PHP)?

EDYCJA: Przepraszam za późną edycję. Już ustawiłem strefę czasową w pliku php.ini, ale nadal nie działa. I jestem pewien, że moja strefa czasowa jest poprawna, ponieważ dostałem ją z podręcznika i sprawdziłem z phpinfo().

+1

Prawdopodobny duplikat. Proszę zobaczyć moją odpowiedź na to pytanie http://stackoverflow.com/questions/8596083/apache-time-stamp-incorrect/8596163#8596163 –

+0

http://php.net/manual/en/datetime.configuration.php – hakre

+0

@ TomS Już to zrobiłem, ale nadal nie działa !! – menislici

Odpowiedz

14

wierzę szukasz: date_default_timezone_set (string $timezone_identifier)

Link

Można również ustawić to w php.ini config.

+0

dobra odpowiedź, tylko problem z date_default_timezone_set jest to funkcja, więc jeśli OP działa oprogramowanie nie napisał on musiałby dodać go do każdego oprogramowania, które uruchamia, a umieszczając go w php.ini, tak jak w mojej odpowiedzi, to jedyne miejsce, w którym powinien zmienić ustawienie. – Justin

+0

Wszystko zależy od tego, do czego piszesz oprogramowanie - jeśli piszesz oprogramowanie do przenoszenia, możliwość ustawienia tego w kodzie może być pożądaną cechą. –

+0

Tak Andy to prawda. Jeśli jednak chcesz, aby serwer na serwerze lokalnym był taki sam jak czas lokalny, ustawienie go w pliku php.ini jest optymalne. Wtedy stworzenie możliwości zmiany go w programie (jeśli jest to program, który piszesz) jest drugorzędne, aby zapewnić przenośność w tym zakresie. – Justin

9

Musisz to zrobić w swoim pliku php.ini. Jestem w systemie Windows i uruchamiam WAMP, więc moja lokalizacja php.ini jest na: c: /wamp/bin/apache/Apache2.2.21/bin/

Następnie otwierasz ten plik, a domyślny jest ustawiony na: date.timezone = UTC zmienić tę wartość dla stref czasowych, co chcesz ...

Aby uzyskać pełną listę obsługiwanych stref czasowych, można odwiedzić: http://php.net/manual/en/timezones.php

8

Otwórz php.ini pod /etc/php.ini.

Odkomentuj tę linię i dodaj swój kontynent i główne miasto. Oto przykład, który sprawdza się w przypadku Niemiec (Deutschland).

[Date] 
; Defines the default timezone used by the date functions 
; http://php.net/date.timezone 
date.timezone = Europe/Berlin 

Zobacz stronę internetową http://php.net/manual/de/timezones.php dla wszystkich stref czasowych w języku niemieckim.

Zapisz plik php.ini. I ponownie uruchom Apache. Mageia Linux używa tego:

systemctl restart httpd.service 
+0

Przewiń całe 'php.ini' i wprowadź tę zmianę w ogóle' date.timezone = ' –

0

można to zmienić w pliku php.ini. jeśli używasz xampp, otwórz xampp/php/php.ini. Poszukaj linii "date.timezone = Europe/Berlin" i przejdź do swojej strefy czasowej. w moim przypadku zmieniłem na "date.timezone = Africa/Nairobi". zapisz i uruchom ponownie apache

Powiązane problemy