Calocybe: Timestamp von heute in einem Jahr

Beitrag lesen

Hi!

Angenommen ich löse das Problem in PHP:

  • ich erstelle mir aus dem Timestamp mit der Funktion strftime() 3 Variablen, jede enthält einen Parameter: Tag, Monat, Jahr.

Dazu dienen in Perl die Funktionen gmtime() und localtime(), je nachdem, ob die zu erhaltenden Zahlen in GMT oder der lokalen Zeitzone gerechnet sein sollen.

  • Dann verwende ich die Funktion mktime wie in deinem Beispiel (sollte es nicht so aufgenaut sein: timelocal(stunden,minuten,sekunden,monat,tag,jahr) ?

Doku lesen, da wirst Du feststellen, dass Antje ganz recht hatte.

timelocal(0,0,0,$tagheute,$monatheute,$monatjahr+1);

timelocal() verwendest Du uebrigens, wenn Du fuer die vorherige Umrechnung localtime() verwendet hast. Hast Du vorher mit gmtime() gerechnet, musst Du an dieser Stelle timegm() nehmen, was aber ansonsten genauso funktioniert wie timelocal(). Ich wuerde die zweite Variante bevorzugen (also immer mit GMT rechnen), da so ueberraschende Nebeneffekte wegen des Zeitzonenwechsels bei Sommer-/Winterzeitumstellung vermieden werden.

Hinweise zu timelocal() bzw timegm():
* Du musst vorher Time::Local einbinden (use)
* Monat ist immer 1 weniger als die menschen-uebliche Zaehlweise
* Jahr ist 1900 weniger als das vierstellige Jahr (somit also die Anzahl der Jahre seit 1900)

Das findest Du natuerlich auch alles in der Dokumentation:
  perldoc Time::Local

So long

--
In God we trust, everybody else we monitor...