2011-06-01 18 views
7

Antes que nada, no tengo acceso a php.ini en el servidor web.PHP zona horaria no configurada

En mi servidor local puse date.timezone = "Europe/Lisbon" en mi php.ini.

¿Es posible cambiar esto en .htaccess? o, ¿cuál es la alternativa?

En el momento en que sale este error en el servidor web para phpmailer():

Strict Standards: date(): It is not safe to rely on the system's timezone settings. .... 

Respuesta

11

Pensándolo bien, ini_set puede no ser el mejor camino a seguir. Aparentemente, las normas E_STRICT dicen que debes usar date_default_timezone_set en su lugar.

Pruebe algo como:

date_default_timezone_set('Europe/Lisbon'); 

$tz = date_default_timezone_get(); 

Más información se puede encontrar aquí sobre el tema: http://answers.google.com/answers/threadview/id/739376.html

Y aquí para las funciones default_timezone:
http://us2.php.net/manual/en/function.date-default-timezone-set.php

Editar: I encontré esta pequeña joya mientras estaba navegando github.

// has to be set to reach E_STRICT compatibility, does not affect system/app settings 
date_default_timezone_set(date_default_timezone_get()); 

Parece la mejor solución.

+1

Encontré esta respuesta buscando en Google "date_default_timezone_set (date_default_timezone_get())" cuando vi que la versión GET no es falsa sino "UTC", y se me ocurrió que esto debería funcionar para evitar errores en una zona horaria de manera agnóstica. Quería asegurarme de no estar loco. :-P –

0

Trate ini_set en la parte superior de su script.

ini_set("date.timezone", "Europe/Lisbon"); 
+0

Más concretamente que quiere decir: ini_set ('date.timezone', 'America/Los_Angeles'); – Swift

Cuestiones relacionadas