FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Tobias am 05 August 2013, 10:30:00

Titel: Änderung 99_Utils.pm
Beitrag von: Tobias am 05 August 2013, 10:30:00
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);
+  }
Titel: Aw: Änderung 99_Utils.pm
Beitrag von: rudolfkoenig am 05 August 2013, 10:40:07
Also eine aufwendige Version von "time()".
Wer braucht es in time_str2num?
Titel: Aw: Änderung 99_Utils.pm
Beitrag von: rudolfkoenig am 05 August 2013, 10:45:26
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...
Titel: Aw: Änderung 99_Utils.pm
Beitrag von: betateilchen am 05 August 2013, 11:12:37
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.
Titel: Aw: Änderung 99_Utils.pm
Beitrag von: rudolfkoenig am 05 August 2013, 11:29:16
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.