setTimeout aber für eine bestimmte Zeit

7

Gibt es irgendwas in JavaScript (also nicht über "plugins"), das mir erlaubt, etwas wie setTimeout zu machen, aber anstatt zu sagen, in wie vielen Millisekunden etwas passieren soll, gebe ich ihm ein Datumsobjekt, wann es passiert etwas tun?

%Vor%

Und ja, ich weiß, dass ich das tun kann, indem ich einfach new Date() von meinem existierenden date-Objekt subtrahiere (oder vielleicht umgekehrt), um die Anzahl der Millisekunden zu erhalten, aber ich würde es trotzdem gerne wissen.

    
Deniz Dogan 23.04.2009, 09:40
quelle

3 Antworten

17

Sie müssen nur die Anzahl der Millisekunden zwischen jetzt und Ihrem Datumsobjekt finden.

%Vor%     
Simon 23.04.2009, 09:46
quelle
6

Nein, aber Sie könnten leicht Ihre eigene Funktion schreiben. Berechne einfach die Differenz zwischen jetzt und dem gegebenen Moment in Millisekunden und rufe setTimeout damit auf.

In etwa so:

%Vor%

BEARBEITEN: Die Extra-Multiplikation wurde um 1000 entfernt, danke Chris, dass Sie darauf hingewiesen haben!

    
Pim Jager 23.04.2009 09:44
quelle
3

Da Leute über die Berechnung von Zeitüberschreitungsintervallen mit date -Objekten sprechen, sollte beachtet werden, dass in Firefox der maximale Wert setTimeout() für das Intervall den Parameter 2147483647 (2 ^ 31 - 1) as PRIntervalTime ist eine vorzeichenbehaftete 32-Bit-Ganzzahl. Das kommt auf knapp 25 Tage.

    
Calvin 23.04.2009 10:04
quelle

Tags und Links