2016-07-04 13 views
0

私は1つのオンライン試験ポータルを持っており、各試験は時間ベースですので、試験時間をページのカウントダウンとして表示する必要があります。 私の問題は、システム/ PC /ラップトップの時間を変更すると、カウントダウンも変更されることです。例えば。試験期間が10分で、試験開始後にラップトップの時間を1時間に変更すると、タイマーも1時間と10分に変更されます。私はあなたのコードを修正し、サーバーから時刻を取得いけないなぜあなたは、クライアント側から時間を取得しているされて私はあなたのコードを見ると、事前PHP + jqueryタイマーがサーバ時間に疲れていない

+1

サーバ側の時間を使用 – madalinivascu

+0

あなたのPHPコードはどこですか?そして、あなたはあなたのサイトをリモートサーバーまたはあなたのローカルマシンにホスティングしていますか? –

+0

簡単な方法は、データベースの開始時間と終了時間を保存することです。JavaScriptコードでは、カウントダウンで時間を表示するだけです。データベースを使用している場合は、ユーザーが試験に合格する時刻を確認するか、ajaxで時刻を確認することができます。 –

答えて

0

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"); 
}); 

おかげで私のコードを述べた。ここの下 ?を使用すると、現在の(サーバー)時間とテストが終了した時間との差を示す簡単なAPIにAJAX呼び出しを行うことができます。

Javascript(JQuery)の部分では、サーバーの結果に基づいてカウントダウンが表示されます。このようにして、クライアントの時計に依存しない信頼性の高い一貫したカウントダウン値を常に得ることができます。あなたがここにそれを行う方法がわからない包みjqueryのでAJAX呼び出しを作る

は非常に簡単です

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

以下の簡単なsinppetであるあなたは、ドキュメント

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

の詳細を見つけることができます
+0

こんにちは。 var t = $( '#ex_time')。val();終了時刻を返します。私は隠しフィールドに終了時刻を格納しているajax呼び出しの代わりに。それは正しい方法ですか? –

+0

これはまた、試験の提出時にサーバー側の時間値を検証する限り、あなたの状況の経験則は、クライアントが常に正しい値 – m453h

+0

を返信するのではなく、私の問題はそのクライアントはラップトップの現地時間を変更し、私のタイマーも更新されます –

関連する問題