2012-08-02 32 views
11

Esto parece ser extraño, pero ya controlo todo, y todavía sucede algo extraño.date_default_timezone_set ('UTC') no funciona

No puedo cambiar la zona horaria de mis scripts php.

Lo primero es lo primero: lo que hice fue algo como esto:

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

esto parece estar funcionando bien cuando he intentado esto en una prueba http://codepad.org/rpYZ0flA.

La zona horaria de mi servidor está configurada en UTC + 8: 00 Taipei, pero cuando probé el código anterior, no funciona realmente. Todavía muestra mi fecha_hora actual en la zona horaria de mi servidor, no siguiendo el código anterior.

Y esta es la configuración php.ini de mi servidor:

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

¿Por qué está sucediendo esto? ¿Esto ya es un error? ¿O error en server_setup o me perdí algo en mi código?

Gracias.

NOTA: Mi entorno es un 7N Windows que se ejecuta en la máquina virtual usando PHP 5.4.4

REVISIÓN:

me dio la solución al cambiar manualmente el php.ini

+0

¿qué edición de php estás utilizando? – Hawili

+1

php 5.4.4, creo que hay algo mal con la VM .. –

+3

ver example1 en http://php.net/manual/en/function.date-default-timezone-set.php – Hawili

Respuesta

3

Pruebe esto

<?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"; 

aquí encontrará el te st resultado http://codepad.org/gc5oYnLW

2

Si solo desea el tiempo en segundos desde la era de Unix (1 de enero de 1970 00:00:00 GMT) con la zona horaria. Use el siguiente código:

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

Debería funcionar sin problemas.

En caso de duda, consulte con este código:

<?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 para su conveniencia.

El retorno se verá así (con fecha y hora de su curso actualizado):

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

Si eso no funciona, vuelva a comprobar la configuración del servidor ... a partir de su archivo PHP.ini.