Anzahl Kalenderwochen pro Jahr

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

  • Anzahl Kalenderwochen pro Jahr

    Heyho,

    da steh ich doch wieder mal vor nem Problem. Für eine KW/Jahres Auswahl benötige ich die maximale KW des ausgewählten Jahres.

    Ich suche also eine Funktion die mir anhand des Jahres die maximale Kalenderwoche gibt.
    date('W') mit dem letzten Tag des Jahres kann ich ja nicht nutzen weil der 31.12. ja auch schon in der ersten KW des nächsten Jahres liegen kann.

    Vielleicht könnt ihr mich auf die richtige Idee bringen.

    Danke

  • #2
    Jetzt steh ich gerade aufem Schlauch:

    PHP-Code:
    date('W'mktime(00012312008)) //ergiebt 01 
    PHP-Code:
    SELECT yearweek('2008-12-31')  //ergiebt 200852 
    Wer hat den denn jetzt recht?

    Kommentar


    • #3
      Kalenderwochen eines Jahres werden beginnend mit der Woche gezählt, in der der 4. Januar des jeweiligen Jahres liegt. Somit haben die meisten Jahre 52, manche aber 53 Kalenderwochen; zur ersten oder letzten Kalenderwoche gehören nicht selten Tage, die in einem anderen Jahr liegen. Nun mach was damit; ist doch nicht schwer

      Kommentar


      • #4
        Habs, zwar hintenrum durchs Knie, aber ok...

        PHP-Code:
        $year 2008;
        echo 
        date('W', (mktime(00011$year+1) - 7*86400)); 
        1.1.2009 - 7 Tage ergiebt die letzte KW von 2008


        //edit:
        OK - 7 ist falsch. -4 Wäre richtig weil wenn der 1.1. ein Donnerstag ist liegt er ja noch in der letzten KW des Vorjahres...

        Also:
        PHP-Code:
        $year 2008;
        echo 
        date('W', (mktime(00011$year+1) - 4*86400)); 
        Zuletzt geändert von prego; 24.09.2008, 15:11.

        Kommentar


        • #5
          @prego
          Ich würde eine Kombi aus date und strtotime vorziehen
          PHP-Code:
          echo date('W',strtotime('04.01.2009')); 
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Danke jah

            Lol, hatte erst strtotime hier stehn, aber dann gedacht das ich mit Sicherheit mktime() empfohlen bekomme

            Oder meinstest du strtotime alleine?

            Kommentar


            • #7
              Fürs Archiv: Hab mir was gebastelt.

              PHP-Code:
              <?php
              function anzahlKalenderWochen($jahr// Gibt die Anzahl der Kalenderwochen eines gegebenen Jahrs (Format YYYY) zurück
               
              {
                
              $letzteKW date("W",strtotime("31.12.".$jahr));
                
              $anzahlKW = ($letzteKW == 1) ? 52 $letzteKW;
                return 
              $anzahlKW;
               } 
              // function anzahlKalenderWochen($jahr)

              ?>
              Keine Garantie, noch nicht getestet ;-)

              Kommentar


              • #8
                Ziemlich umständlich. Wenn du den 28.12. nimmst, geht es einfacher.
                Hier steht warum und wie.

                Kommentar

                Lädt...
                X