|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Problem mit Uhrzeit
|
Seitenanfang |
| Hallo! Ich hole mir mit folgenden Code das Datum und Uhrzeit des Endes einer eBay Auktion: my ($day, $month, $year, $hour, $min, $sec) = $endtime =~ /(\d\d).(\d\d).(\d\d).*?(\d\d)\:(\d\d)\:(\d\d).*?MESZ/; Das klappt auch. Mit folgenden Code rechne ich dann Datum in Sekunden um: $endtime = timelocal($sec,$min,$hour,$day,$month,$year); 18.06.06 21:00:00 MESZ ergibt 1153249200 Sekunden. Ein $time = time ergibt 1150656707 = 20:55. Die Differenz der beiden Werte ergibt 2592493 was umgerechnet ca. 30 Tage sind. Das kann aber nicht stimmen da in der Tat nur 5 Minuten zw. den beiden Daten liegen. Wer kann mir sagen, wo hier mein Fehler liegt?
Datum: 18.06.2006-20:57

|
re: Problem mit Uhrzeit
|
Seitenanfang |
| Es sind 30 Std. nicht 30 Tage.
Datum: 18.06.2006-21:00

|
re: Problem mit Uhrzeit
|
Seitenanfang |
| Sind doch Tage :)
Datum: 18.06.2006-21:27

|
re: Problem mit Uhrzeit
|
Seitenanfang |
Ich hab jetzt zwar den Fehler entdeckt, kann ihn mir aber nicht erklären.#!/usr/bin/perl -wuse strict; use Time::Local; my $endtime = "(23.06.06 10:13:33 MESZ)"; my ($day, $month, $year, $hour, $min, $sec) = $endtime =~ /(\d\d).(\d\d).(\d\d).*?(\d\d)\:(\d\d)\:(\d\d).*?MESZ/; $endtime = timelocal($sec,$min,$hour,$day,$month,$year); my $time = localtime($endtime); print "$time\n";
$time = Sun Jul 23 10:13:33 2006 Aber wieso um Himmels willen steht hier Jul und nicht Jun? Will da schon jemand verfrüht in die Sommerferien? :)
Datum: 18.06.2006-21:30

|
re: Problem mit Uhrzeit
|
Seitenanfang |
| Ich habe die Lösung gefunden. "Wenn Sie Monats- und Jahreswerte an timelocal übergeben, wird erwartet, daß diese sich im gleichen Wertebreich bewegen wie bei localtime. Das heißt, Monate beginnen bei 0, und bei den Jahren ist der Wert 1900 abgezogen." Die Lösung:
$endtime = timelocal($sec,$min,$hour,$day,$month-1,$year); rüdiger
Datum: 18.06.2006-22:03

|
|

|

|

|
 |

|

|
|