settimezone buenos america aires php timezone utc

buenos - Desplazamiento UTC en PHP



set timezone php (6)

¿Cuál es la forma más fácil de obtener el desplazamiento UTC en PHP, en relación con la zona horaria actual (sistema)?


timezone_offset_get()

$this_tz_str = date_default_timezone_get(); $this_tz = new DateTimeZone($this_tz_str); $now = new DateTime("now", $this_tz); $offset = $this_tz->getOffset($now);

No probado, pero debería funcionar


date(''Z'');

devuelve el desplazamiento UTC en segundos.


date("Z") devolverá el desplazamiento UTC relativo a la zona horaria del servidor, no a la zona horaria de la máquina del usuario. Para obtener la zona horaria de la máquina del usuario, puede utilizar la función javascript getTimezoneOffset() que devuelve la diferencia horaria entre la hora UTC y la hora local, en minutos.

<script type="text/javascript"> d = new Date(); window.location.href = "page.php?offset=" + d.getTimezoneOffset(); </script>

Y en page.php que contiene su código php, puede hacer lo que quiera con ese valor de compensación. O bien, en lugar de redirigir a otra página, puede enviar el valor de compensación a su script php a través de Ajax, de acuerdo con sus necesidades.


Hice una versión ligeramente modificada de lo que hizo Oscar.

date_default_timezone_set(''America/New_York''); $utc_offset = date(''Z'') / 3600;

Esto me dio el desplazamiento de mi zona horaria, EST, a UTC, en horas.

El valor de $ utc_offset fue -4.


fecha de eco (''P''); // generará algo +02: 00 o -04: 00


Esta es la misma función de date.getTimezoneOffset() JavaScript:

<?php echo round(date(''Z'')/-60,2); ?>