Olli: Kalenderwoche (KW) = Datum

Hallo,
Könnt ihr mir bei folgendem Script weiterhelfen?

<?php
function kw2dat($kw){

// <------------------------

return $datum;
}

$kw = 33;
$datum = kw2dat($kw);
?>

Ich hab schon im Archiv geguckt doch da gibt es nur dat2kw und das geht mit $kw = date("W", time());
aber andersrum??

Vielen Dank
olli

  1. $kw = 33;
    $datum = kw2dat($kw);
    ?>

    Ich hab schon im Archiv geguckt doch da gibt es nur dat2kw und das geht mit $kw = date("W", time());
    aber andersrum??

    $datum = kw2dat($kw);
    Woher soll er nun wissen welches Datum aus der Kalenderwoche Du haben willst? Immerhin hat er ja 7 zur Auswahl.

    Viele Grüße TomIRL

    1. Hallo,

      $kw = 33;
      $datum = kw2dat($kw);
      ?>

      Ich hab schon im Archiv geguckt doch da gibt es nur dat2kw und das geht mit $kw = date("W", time());
      aber andersrum??

      $datum = kw2dat($kw);
      Woher soll er nun wissen welches Datum aus der Kalenderwoche Du haben willst? Immerhin hat er ja 7 zur Auswahl.

      vielleicht möchte er ja so eine Ausgabe

      die Kalenderwoche 33 geht von 09.08.2004 bis zum 15.08.2004

      1. Hallo,

        vielleicht möchte er ja so eine Ausgabe

        die Kalenderwoche 33 geht von 09.08.2004 bis zum 15.08.2004

        Kann ja sein dann soll er aber auch genau das fragen, ich denke wahsaga hat den richtigen Ansatz für diese Problem geliefert.

        ToMIRL

  2. hi,

    Ich hab schon im Archiv geguckt doch da gibt es nur dat2kw und das geht mit $kw = date("W", time());
    aber andersrum??

    ich würde strtotime verwenden, http://de.php.net/manual/de/function.strtotime.php.

    als ausgangspunkt den 1.1. des betreffenden jahres, und dann "+ x weeks".

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
    1. Servus!

      <?php
      $kw = 33;
      $ts = strtotime("2004-01-01 +".$kw." weeks");
      echo $datum = date("d.m.y", $ts);
      ?>

      ergibt den 19.08.04.
      und nun?
      die kw 33 geht doch nur vom 9-15.08.04!

      MfG
      Olli

      1. hi,

        $kw = 33;
        $ts = strtotime("2004-01-01 +".$kw." weeks");
        echo $datum = date("d.m.y", $ts);

        ergibt den 19.08.04.
        und nun?
        die kw 33 geht doch nur vom 9-15.08.04!

        ich würde bezweifeln wollen, ob diese syntax korrekt ist, bzw. von strtotime verstanden wird.

        mit "ausgangspunkt" meinte ich eher, dass du den entsprechenden timestamp als zweiten parameter von strtotime angibst.

        aber du hast recht, das problem, dass der 1.1. eines jahres schon zur ersten KW gehören kann, baer nicht muss, hast du damit trotzdem noch.

        also noch erst mit date('W') prüfen, ob der 1.1. nun schon zur ersten KW gehört oder nicht, und die als parameter an strtotime übergebene anzahl ggf. entsprechend korrigieren.

        gruß,
        wahsaga

        --
        I'll try being nicer if you'll try being smarter.
        1. Hi!

          12.08.04
          kommt bei
          <?php
          $year = date("Y", time());
          $kwtest = date("W", strtotime($year."-01-01"));

          $kw = 33;
          if ($kwtest == 1) $kw--;
          $ts = strtotime($year."-01-01 +".$kw." weeks");
          echo $datum = date("d.m.y", $ts);
          ?>
          raus!

          Ein Donnerstag wie der 1.1. auch!
          OK ich glaube ab hier komme ich auch alleine weiter - Danke!

          MfG Olli