Guten Tag !
Ich würde gerne so ein Feiertagsscript
für Österreich auf einer Seite einbauen,
das zb nur schreibt :
Bevorstehende Ereignisse:
24.12.2006 - Weihnachten
31.12.2006 - Silvester
habe einen Code bereits im Net gefunden,
den ich auf sowas umbauen wollte,
jedoch weiß nun nicht mehr weiter,
es gibt nur teilweise die Daten aus,
(zb fehlt Weihnachten)
würde mich über Hilfe freuen :
Vielen Dank im Voraus !
Gruß bong
Ich würde gerne so ein Feiertagsscript
für Österreich auf einer Seite einbauen,
das zb nur schreibt :
Bevorstehende Ereignisse:
24.12.2006 - Weihnachten
31.12.2006 - Silvester
habe einen Code bereits im Net gefunden,
den ich auf sowas umbauen wollte,
jedoch weiß nun nicht mehr weiter,
es gibt nur teilweise die Daten aus,
(zb fehlt Weihnachten)
würde mich über Hilfe freuen :
PHP:
<?php
function sqlzeit2timestamp($sqldatetime) {
/*wandelt MySQL Zeit in Timestamp um*/
if (is_numeric($sqldatetime)) {
return $sqldatetime;
}
$sqlzeit = explode(' ', $sqldatetime);
if (!empty($sqlzeit[1])) {
$uhrzeit = explode(':', $sqlzeit[1]);
# eine Uhrzeit
} elseif (strstr($sqlzeit[0], ':')) {
$uhrzeit = explode(':', $sqlzeit[0]);
$datum = explode('-', date('Y-m-d'));
# ein amerikanisches Datum
} elseif (strstr($sqlzeit[0], '-')) {
$uhrzeit = explode(':', date('H:i:s'));
$datum = explode('-', $sqlzeit[0]);
# ein deutsches Datum
} else {
$uhrzeit = explode(':', date('H:i:s'));
$datum = explode('.', $sqlzeit[0]);
$tmp = $datum[0];
$datum[0] = $datum[2];
$datum[2] = $datum[1];
$datum[1] = tmp;
}//end if
return mktime($uhrzeit[0], $uhrzeit[1], 0, $datum[1], $datum[2],$datum[0]);
}//end function
function feiertag($sqldatum_oder_timestamp, $land, $region) {
/*
# land kann sein:
ö - Österreich
d - Deutschland
# region kann sein:
<leer> keine der unten Spezifizierten
bawü - Baden-Würthenberg
bay - Bayern
bran - Brandenburg
mepo - Mecklenburg-Vorpommern
nrw - Nordrhein-Westfahlen
rhpf - Rheinland-Pfalz
saan - Sachsen-Anhalt
saar - Saarland
sax - Sachsen
thr - Thüringen
*/
if (!function_exists('easter_date')) {
return false;
}//end if
if (empty($sqldatum_oder_timestamp)) {
$werktag = time();
} elseif (is_numeric($sqldatum_oder_timestamp)) {
$werktag = $sqldatum_oder_timestamp;
} else {
$werktag = sqlzeit2timestamp($sqldatum_oder_timestamp);
}//end if
$os = easter_date(date("Y", $werktag));
$tag = date('d',$os);
$monat = date('m',$os);
$jahr = date('Y',$os);
# Berechnen des 1. Advent, der 1. Advent ist der 1. Sonntag nach dem 26. November
for($i=26;$i<=50;$i++) {
if($i==30) {
$i=1;
$month=12;
} elseif($month != 12) $month=11;
if(date ("w", mktime(0,0,0,$month,$i,$jahr)) == "0") {
$firstadvent = mktime(0,0,0,$month,$i,$jahr);
break;
}
}
# Sommerzeitumstellung
for($i=31;$i<=40;$i--) {
if(date ("w", mktime(0,0,0,3,$i,$jahr)) == "0") {
$summertime = mktime(0,0,0,3,$i,$jahr);
break;
}
}
# Winterzeitumstellung
for($i=30;$i<=40;$i--) {
if(date ("w", mktime(0,0,0,10,$i,date("Y"))) == "0") {
$wintertime = mktime(0,0,0,10,$i,date("Y"));
break;
}
}
#Muttertag
$l=0;
for($i=0;$i<=31;$i++) {
if(date ("w", mktime(0,0,0,5,$i,date("Y"))) == "0") $l++;
if($l==2) {
$mothersday = mktime(0,0,0,5,$i,date("Y"));
break;
}
}
$arr = array(
#Statische Feiertage
mktime(0,0,0, 1, 1, $jahr) => array('Neujahr' => array('ö','d')),
mktime(0,0,0, 1, 6, $jahr) => array('Heilige 3 Könige' => array('ö'),
'Erscheinungsfest' => array('d-bawü', 'd-saan', 'd-bay')),
mktime(0,0,0, 5, 1, $jahr) => array('Staatsfeiertag' => array('ö'),
'Tag der Arbeit' => array('d')),
mktime(0,0,0, 8,15, $jahr) => array('Maria Himmelfahrt' => array('ö', 'd-saar', 'd-bay')),
mktime(0,0,0,10, 3, $jahr) => array('Tag der dt. Einheit' => array('d')),
mktime(0,0,0,10,26, $jahr) => array('Nationalfeiertag' => array('ö')),
mktime(0,0,0,10,31, $jahr) => array('Reformationstag' => array('d-bran', 'd-mepo', 'd-sax', 'd-saan', 'd-thür')),
mktime(0,0,0,11, 1, $jahr) => array('Allerheiligen' => array('ö', 'd-bawü', 'd-nrw', 'd-rhpf', 'd-saar', 'd-bay')),
mktime(0,0,0,11,20, $jahr) => array('Buß und Bettag' => array('d-sax')),
mktime(0,0,0,12, 8, $jahr) => array('Maria Empfängnis' => array('ö')),
mktime(0,0,0,12,25, $jahr) => array('Christtag' => array('ö'),
'1. Weihnachtstag' => array('ö','d')),
mktime(0,0,0,12,26, $jahr) => array('Stephanitag' => array('ö'),
'2. Weihnachtstag' => array('ö','d')),
mktime(0,0,0,12,31, $jahr) => array('Sylvester' => array('d','ö')),
#Feiertage basierend auf Ostersonntag
mktime(0,0,0,$monat,$tag-46,$jahr) => array('Aschermittwoch'=> array('ö')),
mktime(0,0,0,$monat,$tag- 2,$jahr) => array('Karfreitag' => array('ö', 'd')),
mktime(0,0,0,$monat,$tag, $jahr) => array('Ostersonntag' => array('ö', 'd')),
mktime(0,0,0,$monat,$tag+ 1,$jahr) => array('Ostermontag' => array('ö', 'd')),
mktime(0,0,0,$monat,$tag+39,$jahr) => array('Christi Himmelfahrt' => array('ö', 'd')),
mktime(0,0,0,$monat,$tag+49,$jahr) => array('Pfingstsonntag' => array('ö', 'd')),
mktime(0,0,0,$monat,$tag+50,$jahr) => array('Pfingstmontag'=> array('ö', 'd')),
mktime(0,0,0,$monat,$tag+60,$jahr) => array('Fronleichnam' => array('ö, d-bawü, d-bay, d-nrw, d-rhpf, d-saar, d-sax, d-thür')),
#Feiertage basierend auf 1. Advent
$firstadvent-11*3600*24 => array('Buß - und Bettag' => array('d')),
$firstadvent => array('1. Advent' => array('d','ö')),
$firstadvent+7*3600*24 => array('2. Advent' => array('d','ö')),
$firstadvent+14*3600*24 => array('3. Advent' => array('d','ö')),
$firstadvent+21*3600*24 => array('4. Advent' => array('d','ö')),
#Wichtige Tage
mktime(0,0,0,1,1+44,$jahr) => array('Valentinstag' => array('ö','d')),
mktime(0,0,0,1,1+79+date("L"),$jahr) => array('Frühlingsanfang' => array('ö','d')),
mktime(0,0,0,1,1+171+date("L"),$jahr) => array('Sommeranfang' => array('ö','d')),
mktime(0,0,0,1,1+275+date("L"),$jahr) => array('Herbstanfang' => array('ö','d')),
mktime(0,0,0,1,1+355+date("L"),$jahr) => array('Winteranfang' => array('ö','d')),
$summertime => array('Sommerzeitumstellung' => array('ö','d')),
$wintertime => array('Winterzeitumstellung' => array('ö','d'))
);
if ($feiertag = @$arr[$werktag]) {
foreach ($feiertag as $fname=>$wo) {
if (in_array($land, $wo) || in_array($land.'-'.$region, $wo)) {
return $fname;
}
}
return '';
}
}//end function
$c=800;
$tag = date("j");
$monat = date("m");
$jahr = date("Y");
$timestamp = mktime(0,0,0,$monat,$tag,$jahr);
print "Ausgegeben werden die nächsten $c Tage : <br>TIMESTAMP TODAY MIDNIGHT: $timestamp<br>";
for($count = 1; $count < $c; $count++)
{
$timestamp=$timestamp+86400;
$ft = feiertag($timestamp, ö,"");
$zeit=date ("d.m.Y", $timestamp);
print "$timestamp : $zeit : $ft<br>";
}
?>
Vielen Dank im Voraus !
Gruß bong
Zuletzt bearbeitet: