2016-07-04 9 views
0

Ich habe ein Online-Prüfungsportal und jede Prüfung ist Zeitbasis, so muss ich die Zeit der Prüfung als Countdown auf der Seite anzeigen. Mein Problem ist, dass wenn ich meine System/PC/Laptop-Zeit ändern wird der Countdown auch geändert wird. beispielsweise. Wenn die Prüfungsdauer 10 Minuten beträgt und nach dem Beginn der Prüfung, wenn ich meine Laptopzeit auf 1 Stunde zurückstelle, dann wird mein Timer auch auf 1 Stunde und 10 Minuten geändert. Hier unten iPHP + jquery Timer nicht mit Server Zeit

meinen Code erwähnt
function get15dayFromNow() { 
    var t = $('#ex_time').val(); 
    return t; 
} 
$clock.countdown(get15dayFromNow(), function(event) { 
    $(this).html(event.strftime('%H:%M:%S')); 
}).on('finish.countdown', function(event) { 
    alert("Exam Time Complete"); 
}); 

Vielen Dank im Voraus

+1

Verwenden Sie eine serverseitige Zeit – madalinivascu

+0

Wo ist Ihr PHP-Code? Und hosten Sie Ihre Site auf einem Remote-Server oder auf Ihrem lokalen Computer? –

+0

Ein einfacher Weg ist, dass Sie die Start-/Endzeit in einer Datenbank speichern und der JavaScript-Code nur die Zeit mit einem Countdown anzeigt. Wenn Sie eine Datenbank verwenden, können Sie den Zeitpunkt überprüfen, zu dem der Benutzer die Prüfung abgibt, oder Sie können die Zeit mit ajax überprüfen. –

Antwort

0

Was ich aus dem Code zu sehen ist, dass Sie die Zeit von der Client-Seite bekommen, warum Sie nicht den Code ändern und Zeit vom Server erhalten ?, können Sie einen AJAX-Aufruf an eine einfache API senden, die den Unterschied zwischen der aktuellen (Server-) Zeit und dem Zeitpunkt des Tests angibt.

Der Javascript-Teil (JQuery) zeigt nur den Countdown basierend auf dem Serverergebnis an. Auf diese Weise können Sie immer einen zuverlässigen und konsistenten Countdown-Wert haben, der unabhängig von der Uhr des Kunden ist.

einen AJAX-Aufruf in Jquery zu machen ist sehr einfach incase Sie nicht sicher sind, wie es hier zu tun ist, eine einfache sinppet unter

$.ajax({ 
     type: 'POST', 
     url:  '/getCountDownValue', 
     data: { testID:1 }, 
     success: function (data) { 
        //Do something awesome 
       }, 
       error: function(){ 
        //Handle your errors 
       } 
}); 

Sie weitere Informationen über die Dokumentation finden

http://api.jquery.com/jquery.ajax/

+0

Hallo. var t = $ ('# ex_time') .val(); Gibt die Endzeit zurück. anstelle von ajax call habe ich die endzeit auf verstecktes feld gespeichert. Ist es richtiger Weg? –

+0

Dies funktioniert auch, solange Sie die Zeitwerte auf der Serverseite nach Vorlage Ihrer Prüfung validieren, die Faustregel für Ihre Situation ist nicht zu vertrauen, dass der Client immer den korrekten Wert – m453h

+0

zurückgibt, aber mein Problem ist Dieser Client ändert seine Laptop-Ortszeit und mein Timer wird ebenfalls aktualisiert –