php-script für Öffnungszeiten?

3 Antworten

Ja das geht. Es gibt eine PHP Funktion um das Datum abzufragen.
https://www.php.net/manual/de/function.date.php

Auf Basis des Datums kannst du dann eine Abfrage machen um die richtigen/aktuellen Öffnungszeiten zu ermitteln und auszugeben.


ItsNiklas 
Beitragsersteller
 01.05.2020, 11:46

Vielen Dank! Kannst du mir mal ein Beispiel-Script zeigen? :)

0
ChrisCat1, UserMod Light  01.05.2020, 12:01
@ItsNiklas

Man könnte es z.B. so in der Art realisieren:

<?php
$date = date("md"); //Datum als Monat Tag

if($date >= "0101" && $date <= "0316") { //Zwischen 01. Jan und 16. März
    echo "Öffnungszeiten: 17 - 20 Uhr";
}elseif($date >= "0317" && $date <= "0419"){ //Zwischen 17. März und 19. Aptil
    echo "Öffnungszeiten: 16 - 20 Uhr";
}elseif($date >= "0420" && $date <= "0816"){ //Zwischen 19. Aptil und 16. Aug
    echo "Öffnungszeiten: 14 - 20 Uhr";
}elseif($date >= "0817" && $date <= "1231"){ //Zwischen 17. Aug und 31. Dez
    echo "Öffnungszeiten: 17 - 20 Uhr";
}
?>
1
ItsNiklas 
Beitragsersteller
 01.05.2020, 12:19
@ChrisCat1, UserMod Light

Vielen Dank! Kann man noch Funktionen hinzufügen, das es Beispiel zwischen 17. März und 19. April Montags immer geschlossen ist anzeigt?

0
ChrisCat1, UserMod Light  01.05.2020, 12:23
@ItsNiklas

Ja da wo das echo mit der Öffnungszeit ist könnte man z.B. eine weitere if Abfrage zum Wochentag machen.

ist Montag dann geschlossen sonst Öffnungszeit anzeigen.

Oder du schreibst einfach dazu, "Montags geschlossen" oder "Öffnungszeiten: Von Dinstags bis Freitags 16 - 20 Uhr".

1
ChrisCat1, UserMod Light  01.05.2020, 13:10
@ItsNiklas

Wie du es auf der verlinkten Seite nachlesen kannst, kann man den Wochentag zum einen über date("D") oder date("l") als Wort auslesen oder als Zahl per date("w") oder date("l").

Die if Abfrage "ist Montag dann geschlossen sonst Öffnungszeit anzeigen" könnte also z.B. so aussehen:

//Variante 1
if(date("D") == "Mon") {
  echo "Heute haben wir geschlossen";
}else{
  echo "Heutige Öffnungszeiten: 16 - 20 Uhr";
}
//Vatiante 2
if(date("w") == 1) { // 1 = Montag
  echo "Heute haben wir geschlossen";
}else{
  echo "Heutige Öffnungszeiten: 16 - 20 Uhr";
}
1
ItsNiklas 
Beitragsersteller
 06.05.2020, 22:00
@ChrisCat1, UserMod Light

Vielen Dank! Ist es noch möglich das es zum Beispiel ab 20 Uhr bis 16 Uhr den Text "Aktuell haben wir geschlossen" angezeigt wird?

0
ChrisCat1, UserMod Light  06.05.2020, 22:54
@ItsNiklas

Ja ist möglich.

date("G") gibt die Stunde im 24-Stunden-Format aus.

Die Folgende Abfrage prüft also ob die aktuelle Stunde größer oder gleich 16 ist, also ob es mindestens 16 Uhr ist
UND
ob die die aktuelle Stunde kleiner als 20 ist.

if(date("G") >= 16 && date("G") < 20) {
  echo "Geöffnet";
}else {
  echo "Aktuell haben wir geschlossen";
}
//Variante 2 negieren der Abfrage
if(!(date("G") >= 16 && date("G") < 20)) {
    echo "Aktuell haben wir geschlossen";
}else {
    echo "Geöffnet";
}

Wenn sich jemand auf der Webseite über die Öffnungszeiten informieren möchte, sollten dieser Person aber auch die Öffnungszeiten angezeigt werden, wenn geschlossen ist.

1

Schau mal hier, wie man mit date auch den Wochentag auslesen kann:

https://www.php.net/manual/de/function.date.php

Zwar numerisch aber mit switch und case kann man da ja die entsprechenden Bezeichnungen zuordnen (oder mit if, wenn man sich nicht lange damit beschäftigen will).


ItsNiklas 
Beitragsersteller
 01.05.2020, 11:46

Vielen Dank! Kannst du mir mal ein Beispiel-Script zeigen? :)

0
iQdnic  01.05.2020, 11:48
@ItsNiklas

da ich auf diesem Rechner noch nicht XAMPP installiert habe, hab ich bis nach dem Wochenende keine Entwicklungsumgebung zur Verfügung und kann nicht schnell was passendes basteln. Aber das kriegst Du schon hin. Es ist nicht wirklich schwer.

0
ItsNiklas 
Beitragsersteller
 01.05.2020, 11:50
@iQdnic

Kannst du das nicht so als Text schreiben? Ich brauche meistens einfach ein Beispiel um das zu verstehen.

0