Sommerzeit berechnen
Folgende Snippets berechnen Beginn und Ende der Sommerzeit des gegebenen Jahres (als Timestamp):
<?php
function dst_start($year) {
return mktime(2,0,0,3,31-date('w', mktime(2,0,0,3,31,$year)),$year);
}
function dst_end($year) {
return mktime(2,0,0,10,31-date('w', mktime(2,0,0,10,31,$year)),$year);
}
?>
Der Timestamp lässt sich per date() leicht in menschenlesbares Format wandeln:
<?php
/* Anwendungs-Beispiel 1 */
$year=2000;
$start_str=date('d.m.',dst_start($year));
$end_str=date('d.m.',dst_end($year));
echo "Im Jahr $year begann die Sommerzeit am $start_str und endete am $end_str.<br />";
/* Anwendungs-Beispiel 2 */
echo "Dieses Jahr beginnt die Sommerzeit am ".date('d.m.',dst_start(date('Y')));
/* Anwendungs-Beispiel 3 */
if(date('I')==0) {
// gerade keine Sommerzeit
echo "Die Uhr wird am ".date('d.m.',dst_start(date('Y')))." auf Sommerzeit umgestellt.<br />";
} else {
// gerade Sommerzeit
echo "Die Uhr wird am ".date('d.m.',dst_end(date('Y')))." wieder auf Winterzeit umgestellt.<br />";
}
?>
Achtung: Die obigen Funktionen verwenden die Sommerzeitregelung gemäß Richtlinie 2000/84/EG des Europäischen Parlamentes. In Deutschland wird seit 1996 nach dieser Richtlinie die Zeit umgestellt. Vorher und für andere Länder müssen die obigen Funktionen evtl. angepasst werden.
Es handelt sich bei den Funktionen um "Portierungen" von Excel-Formeln von excelformeln.de. Vielen Dank.