2011-12-22 10 views
6

Ho date di eventi in un altro paese che ho bisogno di salvare nel database. Il problema è che quelle date non includono informazioni sul fuso orario.Come trovare il fuso orario di data/ora specifica in una posizione specifica?

Il fuso orario utilizzato in questa località è CET (ora solare) o CEST (ora estiva).

Qual è il modo più semplice per rilevare quale è in gioco?

+0

Non credo che sia possibile farlo. Quando riportiamo l'orologio indietro di un'ora, per ogni volta in quell'ora, c'è un orario in orario standard e un orario in estate che apparirebbe lo stesso senza un fuso orario incluso. –

risposta

3

io non sono abbastanza sicuro di quello che stai chiedendo. I penso a quello che devi scoprire è se una data specifica è in o senza l'ora legale. In tal caso, è possibile utilizzare 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 

Se quello che vi serve è nessuna di queste, si prega di chiarire che cosa si ha bisogno ...

+0

OK, il titolo era un po 'fuorviante. Fisso. Comunque la tua risposta è d'aiuto in quanto questo codice può fornire informazioni sul fuso orario che è ciò di cui ho veramente bisogno. –

1

Suppongo che la funzione date_default_timezone_get() possa fornire le informazioni desiderate, anche se non sono completamente sicuro che sia in grado di distinguere tra lo standard/l'ora legale.

date_default_timezone_get()

Problemi correlati