Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:holiday

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
php:holiday [2017/05/02 13:06]
webproducer mögliche Tage für Ostersonntag korrigiert
php:holiday [2018/10/07 20:58] (aktuell)
Zeile 13: Zeile 13:
 ===== Bewegliche Feiertage ===== ===== Bewegliche Feiertage =====
  
-Alle beweglichen Feiertage können auf Grundlage des Ostersonntags berechnet werden.+Alle beweglichen Feiertage, mit Ausnahme vom [[buss_und_bettag|Buß- und Bettag]], ​können auf Grundlage des Ostersonntags berechnet werden.
  
 Für Ostersonntag gilt: Für Ostersonntag gilt:
Zeile 21: Zeile 21:
   * Somit liegt der frühestmögliche Termin für Ostersonntag beim 22. März und der späteste beim 25. April   * Somit liegt der frühestmögliche Termin für Ostersonntag beim 22. März und der späteste beim 25. April
  
-^gesetzlicher Feiertag ^ Zeitpunkt ^ +^gesetzlicher Feiertag ^ Zeitpunkt ​^Bundesländer
-| Karfreitag | Ostersonntag - 2 Tage | +| Karfreitag | Ostersonntag - 2 Tage | alle 
-| Ostersonntag | Ostersonntag | +| Ostersonntag | Ostersonntag ​| nur Brandenburg ​
-| Ostermontag | Ostersonntag + 1 Tag | +| Ostermontag | Ostersonntag + 1 Tag | alle 
-| Christi Himmelfahrt | Ostersonntag + 39 Tage | +| Christi Himmelfahrt | Ostersonntag + 39 Tage | alle 
-| Pfingstsonntag | Ostersonntag + 49 Tage | +| Pfingstsonntag | Ostersonntag + 49 Tage | alle 
-| Pfingstmontag | Ostersonntag + 50 Tage |+| Pfingstmontag | Ostersonntag + 50 Tage | alle | 
 +| Fronleichnam | Ostersonntag + 60 Tage | nur SL, RP, NW, BY, BW und TH | 
 +| [[buss_und_bettag|Buß- und Bettag]] | 11 Tage vor dem 1. Advent | nur Sachsen | 
 + 
 +---- 
 + 
 +===== Ostersonntag mit der PHP-Funktion "​easter_date"​ herausfinden ===== 
 + 
 +Die PHP-Funktion easter_date( $year ) gibt den Unix-Timestamp (Anzahl der Sekunden seit dem 01.01.1970) vom Ostersonntag um 0:00 Uhr vom als Parameter übergebendem Jahr zurück. Einschränkung:​ Es können nur Jahreszahlen von 1970 bis 2037 übergeben werden. 
 + 
 +**Wichtiger technischer Hinweis:** Die Funktion "​easter_date"​ ist eine Funktion aus der Erweiterung "​calendar"​. Wenn PHP auf einem Windows Betriebssystem ausgeführt wird sind die Kalenderfunktionen bereits automatisch enthalten. Auf Linux-Systemen hingegen muss PHP mit der Erweiterung '​--enable-calendar'​ kompiliert werden. Andernfalls wird ein Fatal Error ('Call to undefined function'​) geworfen.
  
 ---- ----
Zeile 33: Zeile 43:
 ===== Codebeispiel ===== ===== Codebeispiel =====
  
-Die PHP-Funktion easter_date( $year ) gibt den Timestamp vom Ostersonntag (0:00 Uhr) vom übergebenden Jahr zurück**Wichtiger technischer Hinweis:** Die Funktion "​easter_date"​ ist in der Erweiterung "​calendar"​ enthalten. Wenn PHP auf einem Windows Betriebssystem ausgeführt wird sind die Kalenderfunktionen bereits automatisch enthalten. Auf Linux-Systemen muss PHP mit der Erweiterung '​--enable-calendar'​ kompiliert ​werden. Andernfalls wird ein Fatal Error ('Call to undefined function'​) geworfen.+In diesem Codebeispiel werden ausschließlich bundesweite Feiertage berücksichtigtBei Bedarf können, je nach Bundesland, ​die entsprechenden Feiertage ergänzt ​werden.
  
 <code php class.calendar.php>​ <code php class.calendar.php>​
 class calendar class calendar
 { {
-    private ​$holidays = array();+    protected ​$holidays = array()
 +    protected $year = 0;
  
     /**     /**
Zeile 46: Zeile 57:
     public function __construct( $year = 0 )     public function __construct( $year = 0 )
     {     {
-        $year = ( $year == 0 ) ? date( '​Y'​ ) : $year;+        $this->year = ( $year == 0 ) ? date( '​Y'​ ) : $year;
  
         // feste Feiertage definieren         // feste Feiertage definieren
Zeile 56: Zeile 67:
  
         // alle beweglichen Feiertage von Karfreitag bis Pfinstmontag         // alle beweglichen Feiertage von Karfreitag bis Pfinstmontag
-        $easterSunday = date( '​d.M.Y',​ easter_date( $year ) );+        $easterSunday = date( '​d.M.Y',​ easter_date( $this->year ) );
  
-        foreach( array( -2, 0, 1, 39, 49, 50 ) as $day )+        foreach( array( -2, 1, 39, 49, 50 ) as $day )
         {         {
             $time = array( $easterSunday,​ $day, '​day'​);​             $time = array( $easterSunday,​ $day, '​day'​);​
php/holiday.1493723175.txt.gz · Zuletzt geändert: 2017/05/02 00:00 (Externe Bearbeitung)