2011-12-22 14 views
6

Mam daty wydarzeń w innym kraju, które muszę zapisać w bazie danych. Problem polega na tym, że te daty nie zawierają informacji o strefach czasowych.Jak znaleźć strefę czasową określonej daty i godziny w określonej lokalizacji?

Strefa czasowa używana w tej lokalizacji to CET (czas standardowy) lub CEST (czas letni).

Jaki jest najprostszy sposób na wykrycie, który z nich jest w grze?

+0

Nie sądzę, że to możliwe, aby to zrobić. Kiedy ustawimy zegar z powrotem na godzinę, za każdym razem w tej godzinie, jest czas w standardowym czasie i czasie w lecie, który wyglądałby tak samo bez strefy czasowej. –

Odpowiedz

3

nie jestem pewien, o co prosisz. I myślę, że, czego potrzebujesz, aby dowiedzieć się, czy konkretna data jest w świetle dziennym, czy nie. Jeśli tak, możesz użyć 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 

Jeśli potrzebne jest żadne z nich, proszę wyjaśnić, co trzeba zrobić ...

+0

OK, tytuł był nieco mylący. Naprawiony. Jednak odpowiedź jest pomocna, ponieważ ten kod może dostarczyć informacji o strefie czasowej, co jest tym, czego naprawdę potrzebuję. –

1

Zakładam, że funkcja date_default_timezone_get() dostarczy Ci potrzebnych informacji, ale nie jestem do końca pewien, czy potrafi rozróżnić czas standardowy/letni.

date_default_timezone_get()

Powiązane problemy