Hallo Rudi,
sorry für das vorschnelle Einchecken, hab es total verpeilt... die 99_Utils erschien mir "unwichtig" :(
Soll nicht wieder vorkommen.
Hier mal die Änderung für alle:
Die Funktion time_str2num($) hat sich geändert. Wenn man nun einen Leerstring der Funktion übergibt, wird der aktuelle Timestamp verwendet.
- my @a = split("[- :]", $str);
- return mktime($a[5],$a[4],$a[3],$a[2],$a[1]-1,$a[0]-1900,0,0,-1);
+ my @a;
+ if($str ne "") {
+ @a = split("[- :]", $str);
+ return mktime($a[5],$a[4],$a[3],$a[2],$a[1]-1,$a[0]-1900,0,0,-1);
+ } else {
+ my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
+ return mktime($sec, $min, $hour, $mday, $mon, $year, 0, 0, -1);
+ }
Also eine aufwendige Version von "time()".
Wer braucht es in time_str2num?
Nicht falsch verstehen, ich will Mitarbeit auch an Fremdmodulen haben, aber ich will, dass jemand sich mit einem bestimmten Modul sowohl auskennt (ueber alle Aenderungen Bescheid weiss, damit nicht etwas auf 2 Arten eingebaut wird), als auch sich verantwortlich fuehlt, wenn ein Fehler gemeldet wird.
Ich will nicht die Fehler der Vergangenheit wiederholen...
Die oben veränderte Funktion ist übrigens eine der beiden, zu denen in der commandref in 99_Utils noch die Doku fehlt, weil ich nicht herausfinden konnte, was diese beiden Zeitfunktionen eigentlich machen.
time_str2num konvertiert die Textdarstellung (2013-08-05 11:22:55) zu Sekunden nach 1970 (Unix-Zeitformat), um damit rechnen zu koennen. D.h. wenn man 1 Tag addieren will, dann ruft man
FmtDateTime(time_str2num("2013-08-05 11:22:55")+86400)
auf.
Es gibt auch elegantere Datumsmodule in perl, aber sie zu installieren ist (war?) auf den meisten Systemen ein Qual, da sie eine unmenge anderer Module mitinstallieren wollen, k.A. wozu.