t:o:b: Datum

Hallo,
ich habe ein Problem was das herausfinden eines Datums anbelangt. Als Information habe ich den Tag des Jahres (also z.B. Tag 231). Wie kann ich jetzt diese Information (Tag des Jahres) in ein vernünftiges Datum umwandeln? gibt es da eine passende Funktion oder hat jemand einen Vorschlag?

Würde mich über Hilfe freuen!

t:o:b

  1. n'abend,

    ich habe ein Problem was das herausfinden eines Datums anbelangt. Als Information habe ich den Tag des Jahres (also z.B. Tag 231). Wie kann ich jetzt diese Information (Tag des Jahres) in ein vernünftiges Datum umwandeln? gibt es da eine passende Funktion oder hat jemand einen Vorschlag?

    als Basis nehmen wir das aktuelle Jahr, welches wir in Form eines Timestamps mit mktime() ermitteln:

    // ermittle den 1.1. des aktuellen Jahres um 00:00:00  
    $baseDate = mktime(0,0,0,1,1);
    

    nun wissen wir, dass eine Minute 60 Sekunden hat und eine Stunde 60 Minuten. Nach Adam Riese bringt uns das auf 3600 Sekunden / Stunde. 24 Stunden hat ein Tag, also hat ein Tag 86400 Sekunden.

    Wir errechnen nun wie viele Sekunden unsere Anzahl Tage denn entspricht und addieren das auf unser $baseDate:

    $offset = $numberOfDays * 86400;  
    $calculatedDate = $baseDate + $offset;
    

    Nun können wir uns ganz bequem mittels date() das Datum ausgeben lassen:

    echo date( "d.m.Y" , $calculatedDate );

    weiterhin schönen abend...

    --
    wer braucht schon großbuchstaben?
    sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
    1. hi,

      nun wissen wir, dass eine Minute 60 Sekunden hat und eine Stunde 60 Minuten. Nach Adam Riese bringt uns das auf 3600 Sekunden / Stunde. 24 Stunden hat ein Tag, also hat ein Tag 86400 Sekunden.

      Außerdem wissen wir, dass das nicht für alle Tage zutrifft - Sommer-/Winterzeitumstellung.

      Das mag zwar im vorliegenden Fall weniger von Belang sein -

      Wir errechnen nun wie viele Sekunden unsere Anzahl Tage denn entspricht und addieren das auf unser $baseDate:

      • aber da würde ich doch lieber strtotime() nutzen, mit dem sich ganz bequem Tage auf ein Datum draufaddieren lassen.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Außerdem wissen wir, dass das nicht für alle Tage zutrifft - Sommer-/Winterzeitumstellung.

        Die genaue Zeit bei der Umrechnung ist äußerst wichtig.
        Aber die Idee mit dem addieren funktioniert trotz Sommer-/Winterumstellung, da man ja auf eine Zeitstempel addiert, welche es überhaupt net juckt, ob Sommerzeit oder Winterzeit ist, da dieser einfach seine sekunden hochzählt.

        danke für die anregung! ;)

        t:o:b

      2. Huhu

        • aber da würde ich doch lieber strtotime() nutzen, mit dem sich ganz bequem Tage auf ein Datum draufaddieren lassen.

        Das kann man mit mktime() auch.
        Z.B. für den geschilderten Fall mktime(0,0,0,1,231);

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
    2. echo $begrüßung;

      Als Information habe ich den Tag des Jahres (also z.B. Tag 231). Wie kann ich jetzt diese Information (Tag des Jahres) in ein vernünftiges Datum umwandeln?

      als Basis nehmen wir das aktuelle Jahr, welches wir in Form eines Timestamps mit mktime() ermitteln:

      // ermittle den 1.1. des aktuellen Jahres um 00:00:00

      $baseDate = mktime(0,0,0,1,1);

      
      >   
      > nun wissen wir, dass eine Minute 60 Sekunden hat und eine Stunde 60 Minuten. [usw. usf. bla. fasel. :-)]  
        
      Und wenn wir uns die Dokumentation zu mktime() ansehen, stellen wir fest, dass diese auch ganz gut selbst rechnen kann. Wir lassen sie deshalb einfach den 231. Tag des ersten Monats des gesuchten Jahres ermitteln ...  
        
        
      echo "$verabschiedung $name";
      
      1. Moin,

        Und wenn wir uns die Dokumentation zu mktime() ansehen, stellen wir fest, dass diese auch ganz gut selbst rechnen kann. Wir lassen sie deshalb einfach den 231. Tag des ersten Monats des gesuchten Jahres ermitteln ...

        funktioniert wunderbar, danke! ;)
        das einzigste was man beachten muss, dass man auf den Tag des Jahre noch die zahl 1 hinzuaddiert, weil beim umformatieren eines Zeitstempels in den Tag des Jahres diese bei 0 beginnen. hingegen mktime die Tage bei 1 beginnen lässt...

        gruß,
        t:o:b

      2. n'abend,

        Und wenn wir uns die Dokumentation zu mktime() ansehen, stellen wir fest, dass diese auch ganz gut selbst rechnen kann. Wir lassen sie deshalb einfach den 231. Tag des ersten Monats des gesuchten Jahres ermitteln ...

        ha! Da haben wir es wieder... Funktionalität zusammenstricken, die die STD-Funktionen bereits bieten. Herrlich.

        weiterhin schönen abend...

        --
        wer braucht schon großbuchstaben?
        sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|