• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

javascript countdown

badenixe63

New member
hallo Leute,

ich habe einen countdown in javascript gebastelt.
Das ganze ist nichts grosses... zeitdifferenz wird ausgerechnet, in nen hübschen String umgerechnet und einmal pro sekunde neu ausgeführt.

das ganze läuft klasse... jetzt möchte ich einfach nur vorher die javascript datei von php parsen lassen und die serverzeit als variable mitübergeben. Dann wird die differenz zwischen Server- und clienzeit ausgerechnet und jedesmal von der clientzeit abgezogen bevor der String gemacht wird, damit halt auch Leute die ihre Uhr auf 10.30.2004 haben die richtige Zeit angezeigt bekommen.

das ganze ist nun ne mischung aus php und javascript, ich hoffe, dass ich nicht im falschen thread gelandet bin.

problem ist jetzt folgendes:
die errechnete differenz stimmt vorne und hinten nicht, und selbst wenn ich das script lokal ausführe, (kein php installiert) rechnet er die gleiche differenz aus. wie gesagt die absolut falsche. Das das ganze überhaupt geparst wird habe ich aber überprüft. Das funktioniert.

hier ist der Testlink: Testlink

ich hoffe, dass jemand darauf kommt.

PHP:
var countdown_time = new Date(CountdownJahr, CountdownMonat-1, CountdownTag, CountdownStunde, CountdownMinute, CountdownSekunde);

var Jetzt = new Date();

var offset = Math.round(Jetzt.getTime() / 1000) - <?php echo time(); ?>;

window.onload = countdown;

function countdown()
{
    var Jetzt = new Date();
	//Jetzt.setMinutes(Jetzt.getMinutes() + Jetzt.getTimezoneOffset() + timezone*60);
    var MillisekundenBisCountdown = countdown_time.getTime()-Jetzt.getTime();
    var Rest = Math.round(MillisekundenBisCountdown/1000);	
	Rest -= offset;
    var CountdownText = "";

if(Rest >= 0)
{
        var Tage = Math.floor(Rest/86400);
        Rest %= 86400;


            CountdownText += "<b><font color='red'>" + Tage + "</font> Tag" + (Tage == 1 ? '' : 'e') + "</b><br>";
    
    
        var Stunden = Math.floor(Rest/3600);
        Rest %= 3600;

            CountdownText += Stunden + "h : ";

    
   
        var Minuten = Math.floor(Rest/60);
        Rest %= 60;


            CountdownText += (Minuten < 10 ? '0' : '') + Minuten + "m : ";

    


        CountdownText += (Rest < 10 ? '0' : '') + Rest + "s";


    document.getElementById('Countdown').innerHTML = CountdownText;
    window.setTimeout("countdown()", 1000);
	}

else
{
document.getElementById('Countdown').innerHTML = "<font size='5'><b>" + end_text + "</b></font>";
}
}
 
Zuletzt bearbeitet:
AW: javascript countdown - die 5 Millionste

Definiere "Falsch"!
Nur weil Du Dich offensichtlich mit nichts anderem beschäftigst, heißt das nicht, dass das jeder andere auch tut. Wenn Du sagst, dass es falsch ist und nicht verrätst, was denn falsch ist oder wie man es vernünftig kontrollieren kann, bzw. was denn das korrekte Ergebnis wäre, so es denn funktionierte, kann man nur sagen, dass der Fehler irgendwo vor der Tastatur sitzt, aber es ist nicht mal möglich zu sagen wie weit davor.
 
hmm, ich hab nen kleines document.write davor gehängt um das errechnette offset von der Serverzeit anzuzeigen.

bei mir, zeitzone -4, sind das gute -3500 sekunden, was nun offensichtlich nicht stimmt.
 
verständliche Fehlerbeschreibung, irgendjemand?


Nur mal so als Gedankenspiel: Selbst wenn jemand sein Datum auf 30.10.2004 stehen hat, dann ist doch der Unterschied zwischen "jetzt" vom Server und dem gewünschten Zieldatum die korrekte Zeitdifferenz und zwar unabhängig vom Datum im Browser, oder??

Was Du durcheinanderwirfst sind Zeitzonen und völlig verstellte Rechneruhren. Ersteres kann man berücksichtigen, zweiteres ist höhere Gewalt oder Dummheit.
 
nochmal erklärung

nein, ich glaube ihr habt mein problem noch nicht richtig verstanden, deswegen nochmal:

ich möchte, dass die differenz zwischen clientzeit und serverzeit ausgerechnet wird. Dann wird die Differenz zwischen clientzeit und zielzeit ausgerechnet.

Davon wird die erste differenz, also das offset zwischen server- und clientzeit abgezogen, um mögliche Zeitzonen oder Fehleinstellungen der Uhr zu korrigieren.

Dann wird das ganze in einen String umgewandelt.

Davon ausgehend, dass der Abstand zwischen Clientzeit und Serverzeit immer gleich bleibt, also derjenige nicht mittendrin die Systemzeit seines Computers umstellt, wird einmal die differenz ausgerechnet und dann jedesmal auf die differenz zwischen clientzeit und endzeit angewendet.

Problem: Die differenz zwischen server und clientzeit wird fehlerhaft berechnet... ich befinde mich im moment in zeitzone -4 mit korrekt eingestellter uhr, das heisst es müsste eine differenz von etwa 6*3600 rauskommen, ich lande aber bei ca. -3500 ...

so, hoffe dass das Problem klarer geworden ist ;-)

danke
 
so, ich bin dem problem ein ganzes stück näher gekommen...

ich habe mit folgendem code die unixzeit des javascript ausgegeben und mit der Seite Unixzeit umrechnen, Unixtime convert, die sonst eigentlich immer gute ergebnisse liefert in die "normal"-zeit umgerechnet. Ergebnis: Das ganze liegt etwa 5 Stunden weiter als es sollte:

PHP:
<script type="text/javascript">

jetzt = new Date();

time = jetzt.getTime();

document.write(Math.round(time/1000));
</script>

folgendes ergebnis:

1192996963

um etwa 17:03

woran kann das liegen ??
 
AW: javascript countdown - die 5 Millionste

Definiere "Falsch"!
Nur weil Du Dich offensichtlich mit nichts anderem beschäftigst, heißt das nicht, dass das jeder andere auch tut. Wenn Du sagst, dass es falsch ist und nicht verrätst, was denn falsch ist oder wie man es vernünftig kontrollieren kann, bzw. was denn das korrekte Ergebnis wäre, so es denn funktionierte, kann man nur sagen, dass der Fehler irgendwo vor der Tastatur sitzt, aber es ist nicht mal möglich zu sagen wie weit davor.


Ich weiß ja nicht wie gern Du diesen Job machst, aber komischerweise habe ich genauestens verstanden was die Frage war. Sich dumm zu stellen um anderen Dummheit vorzuwerfen,
das in einem Forum zu tun, welches für dumme Fragen gibt, ist für mich völlig sinnfrei. Also stellt sich mir die Frage warum Du Dich selbst so zum Klöppel machst :D

Ich habe mich hier nur registriert um das loszuwerden. Du beschwerst dich über so viel Schrott in Java - Foren aber als ich nach einer Lösung für den Java-Counter mit unterschiedl. Zeitzonen
gesucht habe, habe ich genau diesen Schrott HIER gefunden. Also bevor Du den weisen alten Mann hier spielst, solltest Du selber erst einmal die Sinnhaftigkeit Deiner Antworten überprüfen.

Ich werde mich mal weiter auf die Suche nach einem Javascript begeben ,welches die unterschiedlichen Zeitzonen berücksichtigt. Vielleicht finde ich ja noch mehr von diesen unsinnigen Antworten.

Wie gesagt ich bin Java-Laye und habe sofort eroiert was die Frage war, übrigens ist eine Gegenfrage zur Frage das ober-dümmste was ich kenne. Hast Du etwa die Frage nicht verstanden? Oh wir haben ein Problem zuzugeben etwas nicht verstanden zu haben? Dann sollten wir vielleicht nicht SuperModerator eines Forums sein :)

Als nächstes wirst Du wahrscheinlich Rechtschreibfehler in meiner Antwort suchen, warum ist die Welt nur voll mit schr....
 
Nur mal so zur Info: Albu ist hier gar nicht mehr aktiv. Und irgendwie schon komisch, dass du dich laut eigener Aussage "nur dafür registriert" hast, um einen jahrealten toten Thread wieder hochzuholen...
 
@izy: der Beitrag von Albu war nicht dazu gedacht darzustellen, dass die Frage nicht verständlich ist. Ich gehe davon aus, dass Albu die verstanden hat (ich habe sie auch beim ersten Mal verstanden). Aber es fehlen Informationen um das Problem zu lösen - wobei ich das jetzt nicht 100%ig überprüfen kann, da der Link nicht mehr funktioniert.

Aber wenn du hier einen Thread mit deinem konkreten Problem machst, wird sicher jemand versuchen dir zu helfen. Prinzipiell sind Zeitzonendifferenzen zwischen Server und Client keine große Sache...
 
Zurück
Oben