cambiar - zona horaria de mexico php
"Fecha(): no es seguro confiar en la configuraciĆ³n de zona horaria del sistema..." (21)
Recibí este error cuando solicité actualizar la versión de PHP 5.2.17 a PHP 5.3.21 en el servidor.
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: date(): It is not safe to rely on the system''s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ''America/New_York'' for ''EDT/-4.0/DST'' instead</p>
<p>Filename: libraries/Log.php</p>
<p>Line Number: 86</p>
</div>
Warning: date(): It is not safe to rely on the system''s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ''America/New_York'' for ''EDT/-4.0/DST'' instead in /filelocation right here/system/libraries/Log.php on line 86
Warning: date(): It is not safe to rely on the system''s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ''America/New_York'' for ''EDT/-4.0/DST'' instead in /filelocation right here/system/libraries/Log.php on line 99
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: date(): It is not safe to rely on the system''s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ''America/New_York'' for ''EDT/-4.0/DST'' instead</p>
<p>Filename: libraries/Log.php</p>
<p>Line Number: 99</p>
</div>
@Justis me indicó la dirección correcta, pero su código no me funcionó. Esto hizo
// set the default timezone if not set at php.ini
if (!date_default_timezone_get(''date.timezone'')) {
// insert here the default timezone
date_default_timezone_set(''America/New_York'');
}
Documentación: http://www.php.net/manual/en/function.date-default-timezone-get.php
Esta solución no es solo para aquellos que no tienen acceso completo al sistema. Es necesario para cualquier script cuando se lo proporcione a alguien que no sea usted. Nunca se sabe en qué servidor se ejecutará el script cuando lo distribuya a otra persona.
Además de configurar el date.timezone = como se menciona en varias respuestas, encontré un error en el archivo php.ini que impedía que llegara al date.timezone. La forma en que lo encontré fue ejecutando php desde la línea de comandos en un terminal. esto provocó que se informara un error en la línea 114. En mi caso, no había comentado una configuración para mostrar los errores que tenían ''|'' entre 2 valores. No le gustó. Quité uno de los valores y el | y todo estuvo bien despues de eso
Agregue lo siguiente en su archivo index.php
. Lo encontré por primera vez cuando moví mi aplicación de mi servidor XAMPP a Apache 2.2 y PHP 5.4 ...
Le aconsejo que lo haga en su archivo index.php
lugar del archivo php.ini
.
if( ! ini_get(''date.timezone'') )
{
date_default_timezone_set(''GMT'');
}
En mi caso particular, tengo PHP configurado para usar PHP-FPM (FastCGI Process Manager). Al ejecutar phpinfo()
desde la CLI, vi la zona horaria correcta que había establecido en el php.ini, sin embargo, seguía siendo incorrecto en el navegador y causaba que mi código fallara. Simplemente necesitaba reiniciar el servicio php-fpm
en el servidor.
service rh-php56-php-fpm restart
Es posible que también deba reiniciar el servicio httpd
si editó el php.ini
service httpd restart
Este problema me ha estado molestando durante ALGUNA VEZ porque estoy tratando de inyectar un script "createbucket.php" en el compositor y me siguen diciendo que mi zona horaria es incorrecta.
Al final, lo único que solucionó el problema fue: $ sudo nano /etc/php.ini
Buscar zona horaria
[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = UTC
Asegúrate de quitar el ;
Entonces finalmente
$ sudo service httpd restart
Y serás bueno para ir :)
Estoy hospedando mi cubo EC2 y S3 en la región de us-west-2 (Oregon). Cuando llamaba a $s3client->listBuckets()
para listar los $s3client->listBuckets()
existentes en mi php, recibía una excepción: "Uncaught exception ''Exception'' with message ''DateTime::__construct(): It is not safe to rely on the system''s timezone settings...".
Hice los siguientes cambios para que funcione. Compartir estos detalles en caso de que alguien se enfrente a un problema similar y cualquiera de las respuestas anteriores no haya ayudado.
- Basado en la documentación @ AWS Configuring Network Time Protocol (NTP) , confirmé que el estado del servicio ntpd está bien ejecutando el comando
ntpstat
. Si recibe un error, este enlace le ayuda a saber qué está mal. - Abrió el archivo /etc/php.ini (algunos pueden tenerlo en una ruta diferente según la versión de php instalada) y encontraron que
date.timezone
no estaba configurado a ningún valor y también fue comentado por defecto. No comento eliminando '';'' antes de esta línea, establezca su valor en"UTC"
y guarde el archivo. - Se reiniciaron los daemons http y ntp utilizando el comando
sudo service httpd restart
ysudo service ntpd restart
comandossudo service ntpd restart
.
Después de esto, puedo enumerar los cubos con éxito sin ninguna excepción. Espero que esto ayude.
Para el usuario de la ventana acoplable: cree un archivo local timezone.ini en su proyecto, configure la configuración en docker-compose.yml,
volumes:
- "./docker/config/timezone.ini:/usr/local/etc/php/conf.d/timezone.ini"
zona horaria.ini
date.timezone=Australia/Sydney
Probablemente necesite poner la zona horaria en una línea de configuración en su archivo php.ini
. Debería tener un bloque como este en su archivo php.ini:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York
Si no, agrégalo (reemplazando la zona horaria por la tuya). Después de configurar, asegúrese de reiniciar httpd ( service httpd restart
).
Aquí está la lista de zonas horarias soportadas .
Puede establecer la zona horaria en su archivo .htaccess
php_value date.timezone UTC
Si está utilizando CodeIgniter y no puede cambiar php.ini, agregué lo siguiente al comienzo de index.php:
date_default_timezone_set(''GMT'');
Si estas no son tus opciones
- Modificando
php.ini
. - Adición de la llamada
date_default_timezone
.
En lugar de la date
puedes usar gmdate
.
He usado gmdate( "Y" )
cuando necesité un año para un recorte de copyright.
Si no puede modificar su configuración de php.ini, también puede usar el siguiente fragmento de código al comienzo de su código:
date_default_timezone_set(''Africa/Lagos'');//or change to whatever timezone you want
La lista de zonas horarias se puede encontrar en http://www.php.net/manual/en/timezones.php .
Siempre mantengo esta línea dentro de la raíz index.php
codeigniter. Así que mi código funciona en cualquier servidor
date_default_timezone_set(''Asia/Dhaka'');
Tuve este error al ejecutar php-fpm en una jaula chroot. Intenté crear etc / php.ini y / usr / share / zoneinfo en el directorio chroot, pero simplemente no funcionó. Incluso intenté forzar a los demonios php-fpm para ver qué archivo faltaban, nada saltó.
Entonces, en caso de que Google lo traiga aquí porque obtiene este error cuando usa php-fpm configurado para chroot, probablemente pueda corregirlo agregando esta línea a /etc/php-fpm.d/www.conf
en la sección ENV:
env[TZ] = America/New_York
Normalmente se requiere un reinicio de php-fpm para que tenga efecto. Espero que esto ayude a alguien por ahí.
Tuve que ponerlo entre comillas dobles.
date_default_timezone_set("America/Los_Angeles"); // default time zone
Un método simple para dos zonas horarias.
<?php
$date = new DateTime("2012-07-05 16:43:21", new DateTimeZone(''Europe/Paris''));
date_default_timezone_set(''America/New_York'');
echo date("Y-m-d h:iA", $date->format(''U''));
// 2012-07-05 10:43AM
?>
Una solución rápida mientras rectifica las incompatibilidades, es desactivar el informe de errores en su archivo index.php
:
Inserte la línea a continuación en su index.php debajo de define( ''_JEXEC'', 1 );
error_reporting( E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR |
E_COMPILE_WARNING );
Esta respuesta anterior de es la respuesta correcta, pero puede que no funcione completamente. Agregué esta línea a mi archivo php.ini :
date.timezone = "America/Los_Angeles"
pero no eliminó el error de PHP para todos mis archivos porque algunos de mis scripts de PHP están en subcarpetas. Así que tuve que editar el archivo .htaccess para configurar php.ini para usarlo recursivamente (en subcarpetas):
suphp_configpath /home/account_name/public_html
donde account_name es su nombre de cuenta cpanel y public_html es la carpeta en la que se encuentra su archivo php.ini.
date_default_timezone_set(date_default_timezone_get());
Esta es una solución fácil para quien no conoce la zona horaria.
<? print(gmdate("Y")); ?>
en lugar de
<? print(date("Y")); ?>
trabajó para mí (muestra el año actual y ya no muestra el mensaje de error). (Gracias a Chris arriba)