PHP Frage, Datum ist Feiertag oder Wochenende ermitteln

Domi83

Rear Admiral
Registriert
Feb. 2010
Beiträge
5.202
Hallo Leute, ich habe da mal eine kleine Frage.... Wir haben auf einer unserer Seiten eine kleine Funktion die E-Mails innerhalb der Woche (an Arbeitstagen) an Person X und am Wochenende oder Feiertagen an Person Y sendet. Das ganze sollte vergangenen Freitag mal schnell aufgebaut werden und hab ich auch gemacht (kurz, schnell, spontan).

Code:
public function arbeitszeit() {
	$date_now = date('N'); // aktueller wochentag
	$time_now = date('H'); // aktuelle stunde

	if($date_now > 0 AND $date_now < 6) {
		if($time_now >= 18) {
			return false; // feierabend
		} else {
			return true;
		}
	} else {
		return false; // wochenende
	}
}
Das Teil ist nur schnell zusammen gebaut, damit am Wochenende (oder außerhalb der Arbeitszeit) die korrekte Person über das Formular angeschrieben wird. Was vermutlich sofort auffallen dürfte ist, dass dort natürlich die Feiertage nicht berücksichtigt werden.

Meines Wissens kann die php Klasse datetime() echt viel, das Alter von Personen errechnen, den Abstand zweier Tage in Stunden, Minuten, Sekunden etc. was ja alles gut ist. Nun hab ich das Netz ein wenig abgesucht, aber nur die Informationen zum Berechnen der Anzahl an Tagen gefunden.

Weiß jemand so aus dem Stegreif, ob man mit der php Klasse datetime() auch schon ermitteln kann ob der 12.03.2018 ein Tag in der Woche, am Wochenende oder sogar ein Feiertag ist?! Das knifflige sind ja eigentlich die Ostertage sowie Himmelfahrt und Pfingsten, der Rest ist ja schon fast klar was es hier in Deutschland / Niedersachsen gibt :)

Vermutlich ist das auch nur ein ganz kleiner Befehl, aber ich finde ihn so direkt nicht und vielleicht hat jemand einen Denkanstoß für mich.

Gruß, Domi
 
Ich persönlich nutze immer dieses Script für die Feiertage: Skript
​Das mit dem Wochenende steht ja oben ;)
 
Egal welchen Weg Du gehst es sollte immer eine Implementierung der Osterformel von Gauß sein:

https://de.wikipedia.org/wiki/Gaußsche_Osterformel

Alle anderen "veränderlichen" Feiertage lassen sich davon ableiten, ich kann leider nicht mit einer PHP Vorlage dienen, bisher hat mich das Thema nur in Siebel eScript "getroffen". Wenn Du Google + Copy & Paste machst vergesse nicht zu testen ;-).
 
Vielen Dank für die Tipps, die Funktion von butzhammer.de habe ich bei mir in die Klasse integriert, habe es eben auch mal getestet und es funktioniert :)

Gruß, Domi
 
Naja, schau bitte auch drauf für welches Bundesland du Feiertage brauchst :=) Ich bin in Bayern und arbeite für eine Firma in NRW, ich hab einen Feiertag mehr :=) (trotz überwiegend evangelischer Gegend, sonst wären es 2).

Tip: www.feiertage.net
 
Hallo, ja das mit dem Bundesland hab ich bedacht. Darum hatte ich vorsichtshalber (in Post 1) mal erwähnt, dass es sich hierbei um Deutschland / Niedersachsen handelt. Alle anderen Bundesländer können uns daher ja egal sein, da wir nun mal hier arbeiten :)

Und da das von Madman1209 verlinkte Skript die Bundesländer berücksichtigt, sollten wir da auf der richtigen Seite sein. Wenn es mal passiert dass das Skript nun doch durch einen blöden mathematischen Patzer falsch liegt, ist das leider so. Aber wenn wir 98% korrekt erwischen, dürfte das ausreichend sein :)

Gruß, Domi
 
Zurück
Oben