Seite 1 von 1

[PHP] ausrechnung der diferenz zwischen 2 timestamps

Verfasst: 15.07.2004 13:57
von dr_Alex
das problem ist eigentlich sehr einfach aber ich kriege das irgentwie nicht gelöst. ich habe 2 timestamps. eine ist das aktuelle datum und zeit das andere ist ne bestimmte zeit 3-4 tage später. ich möchte diese diferenz in tagen, std, min und sec wieder geben. hab etwas rum experementirt und dabei kan dies heraus:

datum jetzt: 15.07.2004 - 13:53:48 (1089892422)
datum später: 22.07.2004 - 11:49:57 (1090489797)

Code: Alles auswählen

$temp = $datum_spaeter -  mktime(date("H,i,s,d,m,y"));
$tage = floor ($temp/5184000);
$temp = $temp - $tage * 5184000;
$std = floor ($temp/216000);
$temp = $temp - $std*216000;
$min = floor ($temp/3600);
$sec = $temp - $min*3600;
echo $tage." Tage ".$std." Std ".$min." Min ".$sec." Sec ";
ausgeben tut er das hier:

2 Tage 2 Std 45 Min 3375 Sec

ich weis nicht aber normal müsste ja was anderes kommen oder ich hab etwas unlogisch gedacht (ich hoffe das erste :))

danke vorraus
mfg alex

Verfasst: 15.07.2004 14:36
von PhilippK
Versuch mal

Code: Alles auswählen

$temp = $datum_spaeter -  time();
Das was du da machst, ist relativ unsinnig...

Gruß, Philipp

Verfasst: 15.07.2004 14:41
von dr_Alex
ja klar das geht ja, aber ich will die ausgabe nicht in sekunden haben sondern umgerechnet nach tagen, stunden, min und sekunden. und dabei haperts es ein wenig. mit time() kommt auch was falsche raus

aber danke trotzdem :)
mfg alex

Verfasst: 15.07.2004 14:46
von PhilippK
Was kommt denn dann raus? Du solltest natürlich nur die eine Zeile ersetzen... ;-)

Gruß, Philipp

Verfasst: 15.07.2004 14:50
von dr_Alex
ja ich hab ja nur die eine ersetzt aber das hab nicht gebrach da
mktime(date("H,i,s,d,m,y")) == time() ist soweit wie ich das getestet habe

Verfasst: 15.07.2004 15:33
von PhilippK
Jetzt hab ich's - du bist bei den Einheiten verrutscht:

Code: Alles auswählen

$temp = $later - $now;
$tage = floor ($temp/86400); 
$temp = $temp - $tage * 86400; 
$std = floor ($temp/3600); 
$temp = $temp - $std*3600; 
$min = floor ($temp/60); 
$sec = $temp - $min*60; 
Gruß, Philipp

Verfasst: 15.07.2004 15:39
von dr_Alex
ohhhh ich entschuldige mich vielmals für diesen eigentlich sinnlosen post da der fehler total dumm war :)

ich hab einmal zu viel durch 60 geteilt :)

danke philippK für den versuche mir zu helfen :)

der code müsste so richtig lauten

Code: Alles auswählen

$temp = $datum_spater - time();
$tage = floor ($temp/86400);
$temp = $temp - $tage * 86400;
$std = floor ($temp/3600);
$temp = $temp - $std*3600;
$min = floor ($temp/60);
$sec = $temp - $min*60;

echo $tage." Tage ".$std." Std ".$min." Min ".$sec." Sec "
mfg
alex

Verfasst: 15.07.2004 15:40
von dr_Alex
looool ich glaube ich hab den beitrag zu lange verfasst, ok du warst schneller :)

danke dir vielmals :)