Countdown stimmt nicht, zeigt 1 Stunde zu wenig an!

Gladiator6

Erfahrenes Mitglied
Hi

Ich habe einen Countdown programmiert, der die Zeit bis zu einem bestimmten Ereignis anzeigt! Jedoch habe ich jetzt gemerkt, dass die Zeit, welche angezeigt wird, 1 Stunde zu wenig ist!

Woran könnte das liegen?

PHP:
<?php

/* Definiere alle Countdowns */
$countdown_array[] = Array(mktime(19,45,00,09,15,2006), "Zeitpunkt: 15.09.2006 19:45:00");




/* chronologisch sortieren */
array_multisort($countdown_array); //Nach Array Schlüssen Sortieren (= Unix Timestamp)


/* Lösche vergangene countdown aus Aarray */
foreach($countdown_array as $item_id=>$item_array)
{
    if($item_array[0] < time())
    {
        unset($countdown_array[$item_id]);
    }
}

/* Gehe zu 1. Eintrag (chronologisch sortiert) */
reset($countdown_array);
$countdown = current($countdown_array);

//$event = $countdown[1];
$end_time = $countdown[0];
$now = time();

$diffDate = $end_time - $now;
$days = floor($diffDate / 24 / 60 / 60 );
$diffDate = $diffDate - ($days*24*60*60);
$hours = floor($diffDate / 60 / 60);
$diffDate = ($diffDate - ($hours*60*60));
$minutes = floor($diffDate/60);
$diffDate = $diffDate - ($minutes*60);
$seconds = floor($diffDate);

echo "<font size='+5' color='white'><strong>Es verbleiben $days Tage, $hours Stunden, $minutes Minuten $seconds Sekunden bis zum nächsten Eventl</strong></font>";
?>

Sommerzeit Winterzeit?
 
Bei mir funktioniert das Script richtig.

Stimmt die Uhrzeit an deinem PC?
Mach mal das mit Sommer-/Winterzeit rein. kannst du ja auch mit der date-Funktion prüfen. Musst halt drauf aufpassen, wenn sich Sommer-/Winterzeit in dieser Zeitspanne überschneiden.
 
Hallo,

Ich denke, seine lokale Uhrzeit ist irrelevant, da die vom Server genommen wird.

Ich denke eher, die Serverzeit ist verstellt.

MfG

DanielL
 
Zuletzt bearbeitet:
Habe es auf 2 Arten getestet! Auf dem Server ist die Zeit um 1 Stunde falsch! Lokal auch, ausser wenn ich die Zeit lokal eine Stunde zurückstelle!
 
fanste hat gesagt.:
Ich bin davon ausgegeangen, dass er das Script bei sich local getestet hat :)


Alles klar, sorry :-)

Versuchs mal mit

PHP:
$countdown_array[] = Array(mktime(19,45,00,09,15,2006,0), "Zeitpunkt: 15.09.2006 19:45:00");

(Sommerzeit)

bzw.

PHP:
$countdown_array[] = Array(mktime(19,45,00,09,15,2006,1), "Zeitpunkt: 15.09.2006 19:45:00");

(Winterzeit)

MfG

DanielL
 
Danke, nun scheint es zu funktionieren :D

Edit: Moment, ich sehe grad, dass der Countdown 11 Tage zu viel anzeigt! Wie das? Man rechne bis zum Datum 15.09.2006, das sind 179 Tage, der Countdown gibt bei mir leider 200 Tage an!!

Woran könnte das liegen? Das Datum habe ich korrekt eingetragen, wo kann sonst ein Fehler liegen?

Jetzt begreif ich das definitiv nicht mehr!

Ich habe es ja so eingerichtet, dass man im Array verschiedene Daten eintragen kann, und es wird jeweils die Dauer bis zum nächsten Datum angezeigt!

Bei mir habe ich ca. 15 Daten eingetragen, wenn ich nun 12 entferne, dass noch 3 bleiben, dann gibt er plötzlich eine Zeit von -1350 Jahren! Strange!
 
Zuletzt bearbeitet:
Gladiator6 hat gesagt.:
PHP:
<?php

/* Definiere alle Countdowns */
$countdown_array[] = Array(mktime(19,45,00,09,15,2006), "Zeitpunkt: 15.09.2006 19:45:00");
Dieser Aufruf wird wohl nicht den gewünschten Effekt haben. Alle Zahlenwerte mit führender Null werden in PHP als Oktalzahlen interpretiert (Basis 8). Da es im Oktalsystem nur die Ziffern 0-7 gibt, ist 09 eine ungültige Zahl und wird somit als 0 gewertet. Also am besten nie führende Nullen verwenden – es sei denn, man weiß über die Auswirkungen bescheid (ein entsprechender Kommentar wäre dann aber dennoch angebracht).
 
Vielen Dank! Das war genau der Fehler! Wäre selber wohl nie darauf gekommen!

Wenn ich das Script auf dem Server ausführe, gibt er trotzdem 1 Stunde zu wenig an, obschon ich die Sommerzeit angegeben habe! Die Tage stimmen nun aber!
 
Zuletzt bearbeitet:
Zurück