2017-11-22 16 views
0

xml http requestを使用してサーバの現在時刻を取得しました。クライアントの時刻がサーバ時刻と等しくないかどうかを確認する方法は? (2時間のエラーと言う)

コードは以下の通りです:

var xmlHttp; 
function srvTime(){ 
    try { 
     //FF, Opera, Safari, Chrome 
     xmlHttp = new XMLHttpRequest(); 
    } 
    catch (err1) { 
     //IE 
     try { 
      xmlHttp = new ActiveXObject('Msxml2.XMLHTTP'); 
     } 
     catch (err2) { 
      try { 
       xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); 
      } 
      catch (eerr3) { 
       //AJAX not supported, use CPU time. 
       alert("AJAX not supported"); 
      } 
     } 
    } 
    xmlHttp.open('HEAD',window.location.href.toString(),false); 
    xmlHttp.setRequestHeader("Content-Type", "text/html"); 
    xmlHttp.send(''); 
    return xmlHttp.getResponseHeader("Date"); 
} 

var st = srvTime(); 
var date = new Date(st); 
var localTime = new Date(); 
document.write("Local machine time is: " + localTime + "<br>"); 
document.write("Server time is: " + date); 

私は2つの時間を設定し、最初の1は、第1にはサーバー時間で、クライアントの現地時間です。

時間パターンは、その(平日月日年HH:MM:SSタイムゾーン(地域)):のようなものです

ローカルマシン時間は次のとおりです。水曜日2017年11月22日夜3時44分00秒GMT + 0800( HKT)

サーバーの時刻:水曜日2017年11月22日14時44分02秒GMT + 0800(HKT)

私は、クライアントのローカルタイムであるかの条件がサーバー時間と一致していないようにする必要があり、クライアントのローカルタイムエラーがサーバー時間で2時間以上経過した場合は、がポップアップします。ここで

+0

それは私がmomentjsを使用していない、完全にそのポストの差があります – Samson

答えて

0

は私の答え、jsのコードです:

var calcTimeError = (localTime.getTime() - date.getTime()); 
if(calcTimeError < -7200000 || calcTimeError > 7200000){ 
    //do something here (7200000 = 2 hours: 1000ms * 60 * 60 * 2) 
    alert("your time is not match!"); 
} 
関連する問題