2017-05-08 2 views
0

Ich habe einen Code für einen Timer, der um moment.js basiert Sobald der Timer auf Null gezählt hat, möchte ich es neu starten. Wenn ich manuell das Datum einfügen und Zeit es richtig funktioniert, aber wenn ich die var nennen, die verwendet wird anfänglich es hält nur um 00:00:00Automatischer Neustart von moment.js Timer

Der Code ist unten dargestellt:

var cutOff = moment.tz(targetDate+ ' ' + targetTime, "Europe/London"); 
$('#timer').countdown(cutOff.toDate(), function(event) { 
var days = (event.strftime('%D')); 
if (days >0){ 
    var str = '<span class="timerLabel"> DAYS </span>' + '<span class="timerLabel"> HRS </span>' + '<span class="timerLabel"> MINS </span>' + '<span class="timerLabel"> SECS </span>'; 
    var str2 = '<div class="numberCircle"><span>'+ (event.strftime('%D')) + '</span></div>' + '<span class="separator"> : </span>' + '<div class="numberCircle"><span>'+ (event.strftime('%H')) + '</span></div>' + '<span class="separator"> : </span>' + '<div class="numberCircle"><span>' + (event.strftime('%M')) + '</span></div>' + '<span class="separator"> : </span>' + '<div class="numberCircle"><span>' + (event.strftime('%S')) + '</span></div>'; 
}else{ 
    var str = '<span class="timerLabel"> HRS </span>' + '<span class="timerLabel"> MINS </span>' + '<span class="timerLabel"> SECS </span>'; 
    var str2 = '<div class="numberCircle"><span>'+ (event.strftime('%H')) + '</span></div>' + '<span class="separator"> : </span>' + '<div class="numberCircle"><span>' + (event.strftime('%M')) + '</span></div>' + '<span class="separator"> : </span>' + '<div class="numberCircle"><span>' + (event.strftime('%S')) + '</span></div>'; 
} 
var str3 = '<div class="timerbreak"></div>' 
var str4 = '<span class="TimeLeft">Time Left for </span>' + despatchday; 
var str5 = '<span class="delmethod">Choose preferred despatch method on checkout</span>' 

document.getElementById('countdownTimer').innerHTML = str; //The labels 
document.getElementById('countdownTimer2').innerHTML = str2; // The countdown 
document.getElementById('countdownTimer3').innerHTML = str3; // The underline 
document.getElementById('countdownTimer4').innerHTML = str4; 
document.getElementById('countdownTimer5').innerHTML = str5;    

}) 
.on('finish.countdown', function(event) { 
$(this).parent() 
    //targetDate = moment().add(1, 'days').format('YYYY-MM-DD'); 
    cutOff = moment.tz(targetDate+ ' ' + targetTime, "Europe/London"); 
    despatchday = 'Despatch Tomorrow'; 
    $('div#timer').countdown(cutOff); 
    //$('div#timer').countdown("2017-05-09 16:00:00"); 

}) ;

Irgendwelche Vorschläge, warum es ok startet neu, wenn

$('div#timer').countdown("2017-05-09 16:00:00"); 

verwenden, aber nicht bei der Verwendung von

$('div#timer').countdown(cutOff); 
+0

Versuchen Sie 'cutOff.format()' anstatt nur 'cutOff' – Santosh

+0

@Santosh Das ergibt NaN: NaN: NaN –

+0

Sie können versuchen, das Format als 'Format (" YYYY-MM-DD HH: mm: ss ");' ... Es sollte eine Zeichenfolge in dem von Ihnen angegebenen Format zurückgeben. Ich habe jetzt keinen Laptop, kann es also nicht selbst ausprobieren. – Santosh

Antwort

1

As,

cutOff.format("YYYY-MM-DD HH:mm:ss") 

verwenden in den Kommentaren diskutiert die Zeichenfolge zu erhalten, die Sie haben in der Frage angegeben.

Verwandte Themen