Cuando trabajamos con fechas en PHP siempre hay que tener en cuenta si la zona horaria del sistema es correcta. Para obtener dicha información tenemos la función date_default_timezone_get() que nos devolverá una cadena de texto con dicha zona.
Voy a poneros la sencilla invocación de la función extraída de su web oficial.
string date_default_timezone_get();
Veamos como en el siguiente código se representa la zona horaria en la demo de ejemplo de PHP date_default_timezone_get().
<?php $zonahoraria = date_default_timezone_get(); echo 'Zona horaria predeterminada: ' . $zonahoraria; ?>
Ejecutando este script en este servidor me devuelve:
Zona horaria predeterminada: Europe/Berlin
Las zonas horarias de las que disponemos en PHP son las que aparecen en este link.
El siguiente código NO es mio, pero os será muy últil, vía php.net, podéis verlo funcionando la misma demo anterior pero en el ejemplo 2:
<?php function timezone_offset_string( $offset ) { return sprintf( "%s%02d:%02d", ( $offset >= 0 ) ? '+' : '-', abs( $offset / 3600 ), abs( $offset % 3600 ) ); } $offset = timezone_offset_get( new DateTimeZone( 'Europe/Berlin' ), new DateTime() ); echo "Hora en Berlín: " . timezone_offset_string( $offset ) . "\n"; ?>