Prof. Dr. Dr. Sakkkkarre: Berechnung der Kalenderwoche mit date() und strftime()

Vieleicht intressiert das Jemand:

beide Zeile liefern unterschiedlich Ergebinsse

  
echo     date( "W", mktime(12, 0, 0, 1, 1, 2010)) . "  \n";  
echo strftime("%W", mktime(12, 0, 0, 1, 1, 2010)) . "  \n";  

  1. Hi!

    Vieleicht intressiert das Jemand:
    beide Zeile liefern unterschiedlich Ergebinsse

    echo     date( "W", mktime(12, 0, 0, 1, 1, 2010)) . "  \n";

    echo strftime("%W", mktime(12, 0, 0, 1, 1, 2010)) . "  \n";

      
    Es wäre ein Fehler, wenn sie es nicht täten. Das W bei date() steht für die Wochennummer nach ISO-8601 (die erste Woche ist die mit mindestens 4 Wochentagen im neuen Jahr), beim %W bei strftime() hingegen ist die erste Woche die mit dem ersten Montag. Wenn du da auch die ISO-Wochenzählung haben willst, dann ist dafür das %V vorgesehen.  
      
    Die Formatbuchstaben bei date() und strftime() sind nicht 1:1 austauschbar.  
      
      
    Lo!
    
    1. Hi!

      Die Formatbuchstaben bei date() und strftime() sind nicht 1:1 austauschbar.

      Ja, da hust du wohl recht - mich überraschte aber vor allem, das dem
      Datum einmal die nullte Woche zugrunde liegt, dass andere mal wird
      die letze Woche des vergangen Jahres ausgegeben.

      Aber die "ISO irgendwas" werde ich drswegen wohl nicht lesen :-)

      1. Hi!

        Aber die "ISO irgendwas" werde ich drswegen wohl nicht lesen :-)

        Musst du auch nicht. Nur wissen, dass man eben in Deutschland die Wochen danach nummeriert und die Woche mit 4 Tagen im neuen Jahr die erste ist. Oder anders gesagt, der erste Donnerstag im neuen Jahr liegt in der ersten Woche. Andere Zählweisen, andere Formatbuchstaben. Das ist alles bei den jeweiligen Funktionen im PHP-Handbuch nachzulesen (vorzugsweise im englischen Original, das gruppiert die Formatbuchstaben nach Funktion.)

        Lo!

      2. Hello,

        Aber die "ISO irgendwas" werde ich drswegen wohl nicht lesen :-)

        Nee, es reicht, wenn Du deine Doktortitel wieder abgibst :-P

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Aber die "ISO irgendwas" werde ich drswegen wohl nicht lesen :-)

          Nee, es reicht, wenn Du deine Doktortitel wieder abgibst :-P

          Nichts leichter als das, viele Grüße, Prof. Sakkkkarre

  2. Hallo

    beide Zeile liefern unterschiedlich Ergebinsse

    echo     date( "W", mktime(12, 0, 0, 1, 1, 2010)) . "  \n";
    echo strftime("%W", mktime(12, 0, 0, 1, 1, 2010)) . "  \n";

      
    Dann probiere es mit `strftime("%W", mktime(12, 0, 0, 1, 1, 2010))`{:.language-php} und lese die Beschreibungen von "W" bei [date](http://de3.php.net/manual/de/function.date.php) sowie "%V" und "%W" bei [strftime](http://de3.php.net/strftime).  
      
    Tschö, Auge  
    
    -- 
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.  
    Terry Pratchett, "Wachen! Wachen!"  
      
    [Veranstaltungsdatenbank Vdb 0.3](http://termindbase.auge8472.de/)
    
    1. Hallo

      Dann probiere es mit strftime("%V", mktime(12, 0, 0, 1, 1, 2010)) ...

      Tschö, Auge

      --
      Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
      Terry Pratchett, "Wachen! Wachen!"
      Veranstaltungsdatenbank Vdb 0.3