2011-12-27 25 views
11

Nel mio caso particolare, sia il server che il client sono lo stesso computer, sono su localhost. Quando echo la data dalla funzione date(), visualizza un valore completamente errato, 11 ore prima. Ho anche provato gmdate(), ma visualizza la data in AM non PM. C'è un modo per cambiare il tempo del server Apache, quindi ogni volta che lo prendo in PHP, viene visualizzato lo stesso del tempo sul mio computer?Come cambiare l'orario nel server Apache in modo che corrisponda al tempo del computer (PHP)?

MODIFICA: Ci scusiamo per la modifica in ritardo. Ho già impostato il fuso orario nel php.ini ma non funziona ancora. E sono sicuro che il mio fuso orario è corretto, dal momento che l'ho preso dal manuale e controllato da phpinfo().

+1

Possibile duplicato. Per favore vedi la mia risposta a questa domanda http://stackoverflow.com/questions/8596083/apache-time-stamp-incorrect/8596163#8596163 –

+0

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

+0

@ TomS L'ho già fatto, ma non funziona ancora !! – menislici

risposta

14

Credo che stai cercando: date_default_timezone_set (string $timezone_identifier)

Link

È possibile anche impostare questo nella configurazione php.ini.

+0

buona risposta, solo problema con date_default_timezone_set è una funzione, quindi se l'OP sta eseguendo software non ha scritto lui dovrebbe aggiungerlo a ogni pezzo di software che sta girando, mentre impostandolo nel php.ini come nella mia risposta, questo è l'unico posto dove dovrebbe cambiare le impostazioni. – Justin

+0

Dipende tutto da cosa stai scrivendo il software - se stai scrivendo software per la portabilità, avere la possibilità di impostare questo codice può essere un tratto desiderabile. –

+0

Sì Andy è corretto. Tuttavia, se vuoi che il tuo server su un localhost sia uguale all'ora locale, impostarlo nel php.ini è ottimale. Quindi creare la capacità di cambiarlo nel programma (se è un programma che si sta scrivendo) è secondario per fornire la portabilità a tale riguardo. – Justin

9

È necessario eseguire questa operazione nel file php.ini. Sono su Windows ed eseguo WAMP così il mio indirizzo php.ini è in: c: /wamp/bin/apache/Apache2.2.21/bin/

Si apre quindi quel file e il valore predefinito è impostato su: date.timezone = UTC Si modificare questo valore per qualsiasi fuso orario che vuoi ...

per un elenco completo dei fusi orari supportati, è possibile visitare: http://php.net/manual/en/timezones.php

8

Aprire il file php.ini in /etc/php.ini.

Decommenta questa riga e aggiungi il tuo continente e la città principale. Ecco un esempio che funziona per la Germania (Deutschland).

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

consultare il sito web http://php.net/manual/de/timezones.php per tutti i fusi orari in tedesco.

Salvare il file php.ini. E riavvia l'apache. Mageia LINUX utilizza questa:

systemctl restart httpd.service 
+0

Scorri l'intero file 'php.ini' e apporta questa modifica a 'date.timezone =' –

0

questo può essere cambiato nel php.ini. se usi xampp, apri xampp/php/php.ini. Cerca la riga 'date.timezone = Europe/Berlin' e modifica il tuo fuso orario. nel mio caso sono passato a "date.timezone = Africa/Nairobi". salva e riavvia apache

Problemi correlati