Hallo liebe Gemeinde ich habe Probleme mit einer Funktion.
PHP-Code:
<?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('Valentienstag' => 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
Wie erreiche ich das das mir z.B am 31.12.2008 auch angezeigt wird das es Silvester ist.