Pregunta

Muy claro:

PHP devuelve zonas horarias en el siguiente formato:

"America/Los_Angeles"

Quiero convertirlo a:

-7

Encontré muchos códigos para convertirlo, calculando diferencias con funciones personalizadas.pero como minimalista no puedo creer que no exista una forma más sencilla (tal vez una función de fecha y hora) de obtener el valor de inmediato.¿Alguien sabe sobre esto?

¿Fue útil?

Solución

$dateTimeZone = new DateTimeZone("America/Los_Angeles");
$date = new DateTime(null, $dateTimeZone);
echo $dateTimeZone->getOffset($date)/60/60;

Manifestación

Otros consejos

PHP utiliza las zonas horarias estándar de la base de datos de zonas horarias de la IANA.

"América/Los_Angeles" es no lo mismo que -7.-7 es un "desplazamiento de zona horaria", no una "zona horaria".Lea "Zona horaria! = Desplazamiento" en la etiqueta de zona horaria wiki.

Considere eso "America/Los_Angeles" representa la hora del Pacífico de EE. UU., que es solo -7 durante el horario de verano del Pacífico (PDT).El resto del año, está en la hora estándar del Pacífico (PST), que es -8.

El código proporcionado en la respuesta de John le dará correctamente el desplazamiento que utiliza una zona horaria para el actual fecha y hora.Reconozca que el valor cambiará dependiendo de cuándo ejecute el código.

Además, debe darse cuenta de que, si bien puede determinar el desplazamiento para una zona horaria particular en cualquier momento determinado, lo contrario no es cierto.Tú no puedo trate -7 como una zona horaria y espere que alguien pueda saber que es el horario de verano del Pacífico.Tenga en cuenta que -7 también se aplica a la hora estándar de las montañas, que Arizona utiliza durante todo el año.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top