2012-08-02 17 views
11

Questo sembra strano ma controllo già tutto, e succede ancora una cosa strana.date_default_timezone_set ('UTC') non funziona

Non riesco a modificare il fuso orario dei miei script php.

Per prima cosa: quello che ho fatto è stato qualcosa di simile:

<?php 
date_default_timezone_set('UTC'); 
echo '<br>'; 
echo date('Y-m-d H:i:s'); 
?> 

questo sembra funzionare bene quando ho provato questo su una prova http://codepad.org/rpYZ0flA.

Il fuso orario del mio server è impostato su UTC + 8: 00 Taipei, ma quando ho provato il codice sopra non funziona. Mostra ancora il mio attuale date_time nel fuso orario del mio server, non seguendo il codice sopra.

E questa è la configurazione php.ini del mio server:

date/time support     enabled 
"Olson" Timezone Database Version 2012.3 
Timezone Database     internal 
Default timezone      Europe/Berlin 

perché questo sta accadendo? È già un bug? O errore su server_setup o mi sono perso qualcosa nel mio codice?

Grazie.

NOTA: Il mio ambiente è un 7N Windows in esecuzione in VM usando PHP 5.4.4

FIX:

ho ottenuto la correzione modificando manualmente il file php.ini

+0

quale edizione di php stai usando? – Hawili

+1

php 5.4.4, penso che ci sia qualcosa di sbagliato nella VM .. –

+3

verifica esempio1 su http://php.net/manual/en/function.date-default-timezone-set.php – Hawili

risposta

3

Prova questo

<?php 
echo date('Y-m-d H:i:s T', time()) . "\n"; 
date_default_timezone_set('UTC'); 
echo date('Y-m-d H:i:s T', time()) . "\n"; 

qui troverai il te st result http://codepad.org/gc5oYnLW

2

Se si desidera solo il tempo in secondi da Unix Epoch (1 gennaio 1970 00:00:00 GMT) con fuso orario. Utilizzare il codice di seguito:

<?php 
date_default_timezone_set("UTC"); 
time()+date("Z"); 
0

Dovrebbe funzionare senza problemi.

In caso di dubbio, controllare con questo codice:

<?php 
date_default_timezone_set('America/Virgin'); 
echo date('Y-m-d H:i:s T') . "\n"; 
date_default_timezone_set('UCT'); 
echo date('Y-m-d H:i:s T') . "\n"; 

Here is a codepad preview per la vostra convenienza.

Il ritorno sarà simile a questa (con la data aggiornata e ora fuori corso):

2017-12-11 03:09:58 AST 
2017-12-11 07:09:58 UCT 

Se non funziona, controllare la configurazione del server ... a partire con il file PHP.ini.