Feiertage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Feiertage

    Ich habe folgendes array:
    PHP-Code:
    if ($feiertage == "Sachsen") {

    $ftage = array("01.01" =>"Neujahrstag",
                   
    "03.04" =>"Karfreitag",
                   
    "06.04" =>"Ostermontag",
                   
    "01.05" =>"Tag der Arbeit",
                   
    "14.05" =>"Christi Himmelfahrt",
                   
    "25.05" =>"Pfingstmontag",
                   
    "04.06" =>"Fronleichnam\n(LK Bautzen,Westlausitzkreis)",
                   
    "03.10" =>"Tag der Deutschen Einheit",
                   
    "31.10" =>"Reformationstag",
                   
    "18.11" =>"Buß- u. Bettag",
                   
    "25.12" =>"1. Weihnachtsfeiertag",
                   
    "26.12" =>"2. Weihnachtsfeiertag"
                   
    );

                   } 

    Auslesen tu ich wie folgt:
    PHP-Code:
       foreach($ftage as $datum => $feiertag) {
       
    $datumfeiertag $datum.".".$jahr;


    $timestamp_montag strtotime("{$jahr}-W{$kalenderwoche}");
    $time_mo date("d.m.Y"$timestamp_montag);
    if (
    $time_mo == $datumfeiertag) {
    $planmontag "<font color='red'>$time_mo <img src='../images/hilfe.png' title='{$feiertag}'/></font>";
    } else {
    $planmontag $time_mo;
    }} 

    Tage natürlich für die gesamte Woche!



    Nur leider markiert es mir nur den letzten Feiertag aus dem array.

  • #2
    Worked as designed
    PHP-Code:
    $planmontag '';
    foreach(
    $ftage as $datum => $feiertag) {
      ...
      if (
    $time_mo == $datumfeiertag) {
        
    $planmontag .= "<font color='red'>$time_mo <img src='../images/hilfe.png' title='{$feiertag}'/></font>";
      } else {
        
    $planmontag .= $time_mo;
      }
    }
    echo 
    $planmontag
    Stichwort Zeichenkettenverknüpfung.

    Gruß
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Erstmal Danke.


      So hatte ich es auch schon, nur leider kommt das Ergebnis da raus:


      Fr, 25.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.202025.12.2020[COLOR=red]25.12.2020 [/COLOR]25.12.2020


      Es werden genau alle Arraypunkte (12 mal) angezeigt.

      Kommentar


      • #4
        Ich dachte, du wolltest eine Liste ausgeben. Dann sag doch mal, was genau du vorhast.

        Gruß
        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Ich hab einen "Schichtplan" mit Datum der KW. Mo bis So.


          Er soll nachschauen, ob Tage davon Feiertage sind.
          Anzeigen tut es mir nur den 26.12. nicht den 25.12.

          Kommentar


          • #6
            Aber das ist momentan nicht wirklich das wichtigste, denn sas Zeiten speichern und bearbeiten funktioniert noch nicht. Andere hier im Forum trauen sich auch nicht daran.

            Kommentar


            • #7
              Dein Code gibt ja auch jedes Ergebnis aus, wenn du das nicht willst, musst du das halt anpassen, die Stelle ist

              PHP-Code:
                if ($time_mo == $datumfeiertag) {
                  
              $planmontag .= "<font color='red'>$time_mo <img src='../images/hilfe.png' title='{$feiertag}'/></font>";
                } else {
                  
              $planmontag .= $time_mo;
                } 

              Kommentar


              • #8
                Ja und ohne .= gibt er nur die letzte Stelle 26.12. aus und mit .= zeigt er den 25.12. und 26.12. aber 12 mal.

                Kommentar


                • #9
                  OK. Problem gelöst? Weil Anforderung nicht definiert.

                  Kommentar


                  • #10
                    wie Anforderung nicht definiert?

                    Kommentar


                    • #11
                      Hat Peter auch schon angesprochen

                      Dann sag doch mal, was genau du vorhast.
                      Du sagst es zeigt den 25.12. nicht an, dabei taucht der 25.12. in deiner Liste auf. Dann sagst du es zeigt dir ein Datum 12 mal an - stimmt, genau wie der Code das vorgibt, also alles OK.

                      Er soll nachschauen, ob Tage davon Feiertage sind.
                      Ja tut das Script doch.

                      Kommentar


                      • #12
                        In diesem Forum kann ich nur sagen, hilf Dir selbst, sonst bist Du verlassen.

                        Das ist die Lösung und funktioniert tatellos!


                        PHP-Code:
                        $timestamp_montag strtotime("{$jahr}-W{$kalenderwoche}");
                        $time_mo date("d.m.Y"$timestamp_montag);

                        $time_mox date("d.m"$timestamp_montag);
                        if(
                        array_key_exists($time_mox$ftage)) {
                          
                        $planmontag "<font color='red'>$time_mo <img src='../images/hilfe.png' title='$ftage[$time_mox]'/></font>";
                        } else {
                          
                        $planmontag $time_mo;

                        Zuletzt geändert von Andreas-LE; 14.12.2020, 12:39.

                        Kommentar


                        • #13
                          Lösung für welches Problem? Hast du immer noch nicht gesagt. Du erzählst doch nur Quatsch.

                          Kommentar


                          • #14
                            Jetzt zeigt es alle Feiertage aus dem Array nach KW an!


                            KW 52 wird der 25. und 26.12. als Feiertag markiert und angezeigt, welcher Feiertag ist.

                            Kommentar


                            • #15
                              Lösung

                              Ich bin blutiger Anfänger in PHP, aber nun möchte ich wenigstens die Lösung hier darstellen.
                              Datumsvergleich mit gesetzter KW!

                              Feiertage:

                              PHP-Code:
                              $jahr date("Y");

                              // Feiertag
                              function feiertag($tag$monat$jahr) {
                               
                              $ausgabe "";
                               foreach (
                              feiertage($jahr) as $ftag => $zeitstempel) {
                                if (
                              $zeitstempel == date("U"mktime(000$monat$tag$jahr))) {
                                 
                              $ausgabe .= $ftag;
                                }
                               }
                               return 
                              $ausgabe;
                              }

                              // Feiertage (gesetzliche- kirchliche- und Brauchtumstage)
                              function feiertage($jahr) {

                               
                              // Die festen Feiertage
                               
                              $ftag["Neujahr"] = mktime(00011$jahr);
                               
                              $ftag["Heilige 3 K&ouml;nige"] = mktime(00016$jahr);
                               
                              $ftag["Internationaler Frauentag"] = mktime(00038$jahr);
                               
                              $ftag["Tag der Arbeit"] = mktime(00051$jahr);
                               
                              $ftag["Maria Himmelfahrt"] = mktime(000815$jahr);
                               
                              $ftag["Tag der deutschen Einheit"] = mktime(000103$jahr);
                               
                              $ftag["Reformationstag"] = mktime(0001031$jahr);
                               
                              $ftag["Allerheiligen"] = mktime(000111$jahr);
                               
                              $ftag["1. Weihnachtsfeiertag"] = mktime(0001225$jahr);
                               
                              $ftag["2. Weihnachtsfeiertag"] = mktime(0001226$jahr);

                               
                              $ftag["Valentinstag"] = mktime(000214$jahr);
                               
                              $ftag["Walpurgisnacht"] = mktime(000430$jahr);
                               
                              $ftag["Sommersonnenwende"] = mktime(000621$jahr);
                               
                              $ftag["Erntedankfest"] = strtotime("Sunday October " $jahr);
                               
                              $ftag["Kirchweih"] = strtotime("third Sunday October " $jahr); // Allerweltskirchweih!
                               
                              $ftag["Halloween"] = mktime(0001031$jahr);
                               
                              $ftag["Martinstag"] = mktime(0001111$jahr);
                               
                              $ftag["Nikolaus"] = mktime(000126$jahr);
                               
                              $ftag["Wintersonnenwende"] = mktime(0001222$jahr);
                               
                              $ftag["Heiligabend"] = mktime(0001224$jahr);
                               
                              $ftag["Silvester"] = mktime(0001231$jahr);
                               
                              // Hier weitere Feiertage (Geburtstage etc.) eintragen

                               // Zeitumstellung
                               
                              $ftag["Winterzeit Ende!\nZeitumstellung auf Sommerzeit\n(3 Uhr - 1 Stunde vor)"] = strtotime('-1 week sun april' $jahr);
                               
                              $ftag["Sommerzeit Ende!\nZeitumstellung auf Winterzeit\n(3 Uhr - 1 Stunde zur&uuml;ck)"] = strtotime('-1 week sun november' $jahr);

                               
                              // Muttertag berechnen
                               
                              $ftag["Muttertag"] = mktime(0005, (14 date("w"mktime(00050$jahr))), $jahr);

                               
                              // Ostersonntag berechnen
                               
                              $ostern strtotime("+ " . (easter_days($jahr)) . " days"mktime(000321$jahr));

                               
                              // Die beweglichen Feiertage, abhängig vom Ostersonntag
                               
                              $ftag["Karfreitag"] = strtotime("-2 day"$ostern);
                               
                              $ftag["Ostersonntag"] = strtotime("0 day"$ostern);
                               
                              $ftag["Ostermontag"] = strtotime("+1 day"$ostern);
                               
                              $ftag["Ch. Himmelfahrt, Vatertag"] = strtotime("+39 day"$ostern);
                               
                              $ftag["Pfingstsonntag"] = strtotime("+49 day"$ostern);
                               
                              $ftag["Pfingstmontag"] = strtotime("+50 day"$ostern);
                               
                              $ftag["Fronleichnam"] = strtotime("+60 day"$ostern);

                               
                              $ftag["Rosenmontag"] = strtotime("-48 day"$ostern);
                               
                              $ftag["Faschingsdienstag (Fastnacht)"] = strtotime("-47 day"$ostern);
                               
                              $ftag["Aschermittwoch"] = strtotime("-46 day"$ostern);
                               
                              $ftag["Palmsonntag"] = strtotime("-7 day"$ostern);
                               
                              $ftag["Wei&szlig;er Sonntag"] = strtotime("+7 day"$ostern);

                               
                              // Erster Advent berechnen
                               
                              $advent strtotime("+1 sunday",mktime(0,0,0,11,27,$jahr));

                               
                              // Die beweglichen Feiertage, abhängig vom ersten Advent
                               
                              $ftag["Bu&szlig;- und Bettag "] = strtotime("-11 day"$advent);

                               
                              $ftag["1. Advent "] = strtotime("+0 day"$advent);
                               
                              $ftag["2. Advent "] = strtotime("+7 day"$advent);
                               
                              $ftag["3. Advent "] = strtotime("+14 day"$advent);
                               
                              $ftag["4. Advent "] = strtotime("+21 day"$advent);
                               
                              $ftag["Totensonntag "] = strtotime("last sunday"$advent);
                               
                              $ftag["Volkstrauertag "] = strtotime("-14 day"$advent);
                               
                              asort($ftag);
                               return 
                              $ftag;


                              Datumsvergleich:

                              PHP-Code:
                              // Montag
                              $timestamp_montag strtotime("{$jahr}-W{$kalenderwoche}");
                              $time_mo date("d.m.Y"$timestamp_montag);
                              $time_mox date("d.m"$timestamp_montag);
                              $teile explode("."$time_mox);
                              $feiertag feiertag($teile[0], $teile[1], $jahr); // Tag, Monat, Jahr
                              if ($feiertag !== "") {
                              $planmontag "<font color='red'>$time_mo <img src='../images/hilfe.png' title='$feiertag'/></font>";
                              } else {
                                  
                              $planmontag $time_mo;
                                  } 
                              Ich hab es bei mir noch verfeinert und nach Bundesland selectierbar gemacht.
                              Zuletzt geändert von Andreas-LE; 14.12.2020, 20:40.

                              Kommentar

                              Lädt...
                              X