Schrift
[thread]10718[/thread]

Date::Manip Ergebnis nochmal parsen?

Leser: 2


<< >> 4 Einträge, 1 Seite
Froschpopo
 2007-11-04 20:15
#101847 #101847
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Huhu!
Habe folgendes Script gebastelt:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use strict;
use Date::Manip;

my $date1 = "2007-10-15 10:10:23";
my $date2 = "2007-10-16 10:10:25";

my $err;
my $date = DateCalc($date1, $date2, \$err);

print "$date\n";

Der Code funktioniert soweit einwandfrei.
Das Ergebnis (+0:0:0:1:0:0:2) finde ich aber ziemlich unschön. Kann man das mit dem Parser von Date::Manip noch etwas schöner hinbekommen oder muss ich das selbst machen?
Die Doku von Date::Manip haut mich echt total vom Hocker.

Ich hätte lieber die einzelnen Einheiten von $date in einem Array, Hash oder was auch immer.
Bevor ich jetzt aber wieder rumtüfftel täte mich interessieren, ob man das nicht vielleicht schon im Modul erledigen kann, dann könnte ich mir split() sparen.
ptk
 2007-11-04 20:27
#101849 #101849
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Vielleicht solltest du ein anderes Date-Modul verwenden, z.B. CPAN:DateTime.
Froschpopo
 2007-11-04 23:17
#101851 #101851
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
das ist doch dasselbe, nur dass ich vorher splitten muss.
ptk
 2007-11-05 00:14
#101853 #101853
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ich kau's dir nur deshalb vor, weil es mich auch interessiert:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
use strict;
use DateTime;
use DateTime::Format::ISO8601;
use Data::Dumper;

my $date1 = DateTime::Format::ISO8601->parse_datetime("2007-10-15T10:10:23");
my $date2 = DateTime::Format::ISO8601->parse_datetime("2007-10-16T10:10:25");

my $delta = $date2-$date1;
print Dumper($delta->deltas), "\n";

Ansonsten gibt es noch viele weitere Möglichkeiten mit der DateTime-Modulfamilie.
<< >> 4 Einträge, 1 Seite



View all threads created 2007-11-04 20:15.