2011-12-22 24 views
6

Tengo fechas de eventos en otro país que necesito guardar en la base de datos. El problema es que esas fechas no incluyen información de zona horaria.¿Cómo averiguar la zona horaria de la fecha y hora específica en una ubicación específica?

La zona horaria utilizada en esta ubicación es CET (hora estándar) o CEST (horario de verano).

¿Cuál es la forma más fácil de detectar cuál está en juego?

+0

No creo que sea posible hacer esto. Cuando ajustamos el reloj una hora atrás, por cada hora en esa hora, hay una hora en horario estándar y una hora en verano que aparecería igual sin incluir una zona horaria. –

Respuesta

3

no estoy muy seguro de lo que estás pidiendo. I piensa lo que necesita saber es si una fecha en particular está en horario de verano o no. Si es así, puede usar date('I').

$dst_now = date('I'); // whether our current timezone is currently in DST 
$dst_then = date('I', strtotime($date)); // whether that date is in DST for our current timezone 

$date_obj = new DateTime($date, new DateTimeZone('Europe/Paris')); 
$dst_thereandthen = $date_obj->format('I'); 
// whether that date is in DST for that timezone 

Si lo que necesita es ninguno de estos, por favor aclarar lo que necesita ...

+0

OK, el título fue un poco engañoso. Fijo. Sin embargo, su respuesta ayuda, ya que este código puede proporcionar información de zona horaria, que es lo que realmente necesito. –

1

Supongo que la función date_default_timezone_get() le daría la información que desea, aunque no estoy completamente seguro de que pueda diferenciar entre la hora estándar/de verano.

date_default_timezone_get()

Cuestiones relacionadas