Hallo Scheuri,
[...]
ja...aber (leider?) benutze ich in der MySQL-DB die variable "timestamp" um das datum anzugeben, welches mit yyyymmddHHMMSS formatiert ist.
Ich nehm an, dass ich zuerst den Wert des Timestamps auslesen, in epoch-seconds umrechnen, das heutige datum in epoch-seconds irgendwie einlesen und dann die beiden werte (die von der DB und die des heutigen Datum) vergleichen und dann noch in den gewünschten wert (tage, monate, etc) umrechnen muss.
Und da muss ich schlichtweg passen...ich hoff ich krieg das auch auf die reihe...dann kann ichs das jetzige "script" ersetzten...aber im moment bin ich froh, dass es überhaupt funktionert...
Time::Local hilft Dir weiter. Das Paket enthält die Fkt timelocal, die Umkehr zu localtime, d.h. es erstellt aus "normaler" Zeit, die Epochalzeit.
perldoc -f time;
perldoc -f localtime;
perldoc Time::Local
Ich hab' mal was zusammengeklappert, müsste eigentlich fkt.
#!/pfad/zu/perl/perl -w
use strict;
use Time::Local;
#DB Datum
Beispieldatum nach Timestamp
my $dbdate='20000703101010';
#interessante Werte extrahieren
my ($dbyear, $dbmonth, $dbday)= $dbdate =~ m/(\d{4})(\d{2})(\d){2}/;
#in epochalzeit umw.
$dbdate = timelocal(0,0,0,$dbday,$dbmonth,$dbyear);
#Aktuelles Datum
#interessante Werte extrahieren
my ($aktday, $aktmonth, $aktyear) = (localtime[3,4,5];
#in Epochalzeit umwandeln
my $aktdate = timelocal(0,0,0,$aktday,$aktmonth+1,$aktyear+1900);
vergleichen : )
print "dbdate < aktdate" if ($dbdate < $aktdate);
nochmals danke
scheuri
Hoffe es hilft
Kai