Kategorie:
Webdesign
Tags:
php
strtotime
mktime
timestamp
unix-timestamp
easter_date
feiertage
events
</ Mit PHP Feiertage oder bestimmte Tage ermitteln. >
Ich habe eine Anfrage bekommen wie ich die Freitage in der kleinen Box seitlich anzeigen lasse und diese so genau ermitteln
Das ist einfach mit PHP hinzubekommen.
Ein Beispiel ist der erste Advent der immer auf den nächsten Sonntag nach dem 26. November fällt.
Mit diesem Wissen und mit den Funktionen strtotime und mktime ermittle ich diesen dann.
strtotime — wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um und mktime — gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück.
Der erste Abvent als Code sieht dann so aus:
$ersteradvent = date('d.m.Y',strtotime("+1 sunday",mktime(0,0,0,11,26,2015)));
So funktioniert es auch mit dem zweiten, dritten und vierten Advent. Einfach das +1 sunday durch +2 sunday, +3 sunday oder +4 sunday ersetzen.
Sieht als Code so aus:
$zweiteradvent = date('d.m.Y',strtotime("+2 sunday",mktime(0,0,0,11,26,2015)));
$dritteradvent = date('d.m.Y',strtotime("+3 sunday",mktime(0,0,0,11,26,2015)));
$vierteradvent = date('d.m.Y',strtotime("+4 sunday",mktime(0,0,0,11,26,2015)));
In meinem Code ersetze ich die Jahreszahl durch date(Y) um immer aktuelle zu bleiben.
Im Code sieht es dann so aus:
$ersteradvent = date('d.m.Y',strtotime("+1 sunday",mktime(0,0,0,11,26,date('Y'))));
$zweiteradvent = date('d.m.Y',strtotime("+2 sunday",mktime(0,0,0,11,26,date('Y'))));
$dritteradvent = date('d.m.Y',strtotime("+3 sunday",mktime(0,0,0,11,26,date('Y'))));
$vierteradvent = date('d.m.Y',strtotime("+4 sunday",mktime(0,0,0,11,26,date('Y'))));
Mit dieser Variante lassen sich auch Events ermitteln die z. B. am jedem zweiten Samstag im Juni stattfinden.
Code:
$termin = date('d.m.Y',strtotime("+2 saturday",mktime(0,0,0,6,1,2016)));
Jetzt lasse ich mir auch die Ostertage anzeigen. Dafür gibt es die Funktion easter_date die mir den Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp ausgibt.
Als Code:
$ostersonntag = date('d.m.Y',easter_date(date('Y')));
Möchte man jetzt den Kafreitag oder Ostermontag ermitteln, muss man die Tage in sekunden subtrahiert oder adiert.
Das sieht dann so aus:
$kafreitag = date('d.m.Y',easter_date(date('Y'))-172800);
$ostermontag = date('d.m.Y',easter_date(date('Y'))+86400);
Mit easter_date kann dann auch die Fastnachtszeit, Christi Himmelfahrt, Pfingsten und weiteres ermittelt werden.
46 Tage (-3974400 sek.) vor dem Osterfest
55 Tage (-4752000 sek.) vor dem Osterfest
39 Tage (+3369600 sek.) nach dem Osterfest
49 Tage (+4233600 sek.) nach dem Osterfest
Wie Ihr seht kann damit so einiges anstellen und ermitteln.
Und noch ein kleiner Code am Rande:
Möchtet Ihr ein gewissen Zeitraum abdecken dann schaut euch diesen Code noch an.
$jetzt = date("d.m.Y");
$erstereadventwoche = date('d.m.Y',strtotime("+1 sunday",mktime(0,0,0,11,26,date('Y'))));
$erstereadventwocheende = date('d.m.Y',strtotime("+1 sunday",mktime(0,0,0,11,26,date('Y')))+518400);
if($erstereadventwoche<=$jetzt && $jetzt<=$erstereadventwocheende)
/*Inhalt*/
Und jetzt bleibt mir nur noch euch viel Spaß beim Nachmachen zu wünschen. Permanentlink:
https://twus.info/230