HOWTO · PHP
Zona horaria de Nueva York en PHP
Establezca la zona horaria America/New_York en PHP y formatee una fecha u hora de Nueva York con date().
En esta página
Para mostrar una fecha o una hora en Nueva York, establezca la zona horaria de PHP en America/New_York antes de llamar a date(). El identificador es America/New_York; New_York por sí solo no es el identificador completo de zona horaria de PHP.
Zona horaria de Nueva York en PHP
Los identificadores de zona horaria compatibles de PHP se enumeran en el manual. Establezca la zona horaria predeterminada con date_default_timezone_set() y luego use date_default_timezone_get() para inspeccionar el identificador configurado. La función de establecimiento devuelve true cuando acepta la zona horaria y false cuando no lo hace. Compruebe ese resultado si el identificador proviene de una configuración o de una entrada del usuario, y gestione un resultado false antes de formatear una fecha.
Este ejemplo completo establece la hora de Nueva York, confirma la zona horaria configurada y formatea la fecha y la hora locales:
<?php
$configured = date_default_timezone_set('America/New_York');
if ($configured) {
echo 'Timezone: ' . date_default_timezone_get() . PHP_EOL;
echo 'Date: ' . date('Y-m-d') . PHP_EOL;
echo 'Time: ' . date('H:i:s') . PHP_EOL;
}
El ejemplo imprime el identificador configurado, seguido de la fecha y la hora en el momento en que lo ejecuta. Esos dos últimos valores dependen del momento de ejecución. La cadena de formato controla qué partes de la fecha y la hora locales aparecen. En Y-m-d, Y es un año de cuatro dígitos, m es un mes de dos dígitos y d es un día del mes de dos dígitos. H:i:s utiliza una hora en formato de 24 horas, minutos y segundos; use h:i:sa para una hora en formato de 12 horas con un sufijo am o pm. Cada llamada a date() utiliza la zona horaria predeterminada establecida anteriormente, por lo que la fecha puede diferir de la fecha local del servidor cerca de la medianoche.
Por ejemplo, estas cadenas de formato producen diseños de fecha comunes: Y/m/d, d/m/Y, Y.m.d y d-m-Y. El carácter de formato l escribe el día de la semana completo, mientras que la h minúscula y la H mayúscula seleccionan la hora en formato de 12 horas y de 24 horas, respectivamente. Elija un formato que se adapte al contexto de visualización y tenga en cuenta que date() formatea la hora actual a menos que le pase una marca de tiempo como segundo argumento.
La configuración de la zona horaria se aplica al contexto de ejecución actual de PHP y cambia el valor predeterminado que utilizan las funciones de fecha y hora que dependen de ella. Si la aplicación ya gestiona la configuración de zonas horarias, establezca la zona horaria en el límite adecuado de la solicitud o de la aplicación para que el código no relacionado no dependa de un valor predeterminado inesperado. Use la misma escritura del identificador, America/New_York, al establecer y comprobar la zona horaria.
Para un momento concreto en lugar de la hora actual, pase una marca de tiempo Unix como segundo argumento a date(). Por ejemplo, date('Y-m-d H:i:s', $timestamp) formatea ese momento utilizando la zona horaria configurada. Una marca de tiempo representa un instante; la zona horaria determina su visualización local en el reloj y el calendario. Esta distinción es útil al almacenar horas de eventos en una base de datos y mostrárselas a lectores en Nueva York.
Nueva York observa cambios estacionales de hora, por lo que su desplazamiento UTC no es constante a lo largo del año. El uso del identificador IANA America/New_York permite que PHP aplique las reglas de zona horaria pertinentes para la fecha que se está formateando. Evite sustituirlo por un desplazamiento fijo como -05:00 cuando la aplicación necesita la hora local de Nueva York durante todo el año.
Si un proyecto configura las zonas horarias de forma centralizada, mantenga esa política en un único lugar adecuado y haga que el formateo de fechas la siga de manera coherente.