coundown
gox
- php
hallo, habe ein kleines coundown script gecoded, was ist aber an der berechnung nicht richtig? kommt immer was falsches raus :(
<?php
$coundown = $row['endtime'] - time();
$tage = $coundown / 86400;
$stunden = $coundown / 3600 / $tage;
$minuten = $coundown / 60 / $tage / $stunden;
?>
mfg gox
Hallo gox!
hallo, habe ein kleines coundown script gecoded, was ist aber an der berechnung nicht richtig? kommt immer was falsches raus :(
Was kommt denn falsches raus, und was willst du genau machen?
$coundown = $row['endtime'] - time();
$tage = $coundown / 86400;
$stunden = $coundown / 3600 / $tage;
$minuten = $coundown / 60 / $tage / $stunden;
Und, ich würde die Variable mal spontan $countdown nennen.
Du weißt, was Du so berechnest?
MfG
Götz
es kommt nur falsches raus, stunden und minuten stimmen nicht, z.b. minuten kommt immer 60 raus?!
was ich berechnen möchte:
mit einen timestamp der in der zukunft liegt die tage stunden und minuten berechnen bis dahin... aber so wie ich dachte gehts woll net...
Hallo gox!
mit einen timestamp der in der zukunft liegt die tage stunden und minuten berechnen bis dahin...
$coundown = $row['endtime'] - time();
$tage = $coundown / 86400;
$stunden = $coundown / 3600 / $tage;
$minuten = $coundown / 60 / $tage / $stunden;
Also, ich hab mir das jetzt nicht genau überlegt, aber so in etwa sollte es wohl gehen:
$zeitspanne = $endzeit - $jetzt;
$countdown_text = '';
$minuten = $zeitspanne / 60;
$countdown_text = $minuten.' Minuten';
if ($minuten > 60) {
$stunden = ($zeitspanne - ($minuten*60)) / (60*60);
$countdown_text = $stunden.' Stunden '.$countdown_text
if ($stunden > 24) {
$tage = ($zeitspanne - ($minuten*60) - ($stunden*60*60)) / (60*60*24);
$countdown_text = $tage.' Tage'.$countdown_text;
}
}
Und am Ende dann $countdown_text ausgeben.
Ich hoff, ich hab mich jetzt nicht völlig verplant.
MfG
Götz
ich habs mir nicht genau angeschaut, aber ich brauch nur die einzelnden zeitangaben, also tage stunden und minuten extra um damit weiterzuarbeiten...
bei deiner methode find ich, das es zuviel aufwand und langsam, kann mir vielleicht noch einer sagen was an meiner recnung falsch ist?
hab dein vorschlag getested und folgendes bekomme ich als ausgabe:
0 Stunden 1180.26666667 Minuten
Hallo gox!
hab dein vorschlag getested und folgendes bekomme ich als ausgabe:
0 Stunden 1180.26666667 Minuten
Also, ich hab auf alle Fälle mal mir das Runden gespart, was natürlich noch rein muß.
Also die Divisionen abrunden.
Bei den Minuten dürfte ja eigenlich nie ein Wert größer 60 rauskommen.
Da hab ich halt noch was verplant, aber ich geh jetzt trotzdem schlafen.
MfG
Götz
Hallo nochmal!
Mir fiel grda auf, daß ich da noch mehr verplant hab.
Aber kannst es ja mal als Ansatz nehmen.
MfG
Götz
Hallo nochmal!
So, da ich gestern Nacht ja einiges nicht bedacht hatte wollte ich doch noch eine funktionierende Lösung posten.
Das folgende Script hab ich kurz getestet, in meinen Tests hat es korrekt funktioniert (der Einfachheit halber hat eben jedes Jahr 365 Tage, für so nen Counter ist das imho genau genug).
Das geht bestimmt alles auch einfacher und toller, aber ich wollte nur ein funktionierendes Script, nicht mehr und auch nicht weniger ;)
Nun das Script ($startzeit und $endzeit müssen als UNIX-Timestamps gegeben sein, Kommentare hab ich mir gespart, sollte selbsterklärnd sein):
$zeitspanne = $endzeit - $jetzt;
$minuten = floor($zeitspanne / 60);
$minuten_text = $minuten.' Minuten';
if ($minuten >= 60) {
$minuten = ($minuten % 60);
$minuten_text = $minuten.' Minuten';
$stunden = floor(($zeitspanne - ($minuten*60)) / (60*60));
$stunden_text = $stunden.' Stunden ';
if ($stunden >= 24) {
$stunden = ($stunden % 24);
$stunden_text = $stunden.' Stunden ';
$tage = floor(($zeitspanne - ($minuten*60) - ($stunden*60*60)) / (60*60*24));
$tage_text = $tage.' Tage ';
if ($tage >= 365) {
$tage = ($tage % 365);
$tage_text = $tage.' Tage ';
$jahre = floor(($zeitspanne - ($minuten*60) - ($stunden*60*60) - ($tage*60*60*24)) / (60*60*24*365));
$jahre_text = $jahre.' Jahre ';
} else {
$jahre_text = '';
}
} else {
$tage_text = '';
}
} else {
$stunden_text = '';
}
$countdown_text = $jahre_text.$tage_text.$stunden_text.$minuten_text;
MfG
Götz
Hello,
<?php
$coundown = $row['endtime'] - time();
$tage = $coundown / 86400;
$stunden = $coundown / 3600 / $tage;
$minuten = $coundown / 60 / $tage / $stunden;
?>
Bednek auch, dass die reine Rechnung mintestsn zweimal im Hahr nicht simmt: zum Sommerzeitbeginn und zum Sommerzeitende.
Es gibt in PHP die sehr leistungsfähig Funktionen
strtotime() http://de2.php.net/manual/en/function.date.php
date() http://de2.php.net/manual/en/function.date.php
die sich gut ergänzen, wenn das Datum im Zeitraum vom 01.01.1970 bis zum 19.01.2038 liegt. Außerhalb des Bereiches funktionieren die Funktionen leider nicht mehr beide.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom