[英]How to make a condition of if client's time is not equal to server time? (let say 2 hours error)
我只是使用xml http請求來獲取服務器的當前時間。
代碼如下:
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);
我列出了兩個時間,第一個是客戶端本地時間,第二個是服務器時間。
時間模式是這樣的(WeekDay Month Date Year HH:MM:SS TimeZone(地區)):
本地機器時間為:2017年11月22日星期三15:44:00 GMT + 0800(HKT)
服務器時間是:2017年11月22日星期三14:44:02 GMT + 0800(HKT)
我需要做一個if條件,即客戶的本地時間與服務器時間不匹配,假設如果客戶的本地時間錯誤與服務器時間超過2小時,它將彈出一個alert("your time is not match!");
。
這是我的答案,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!");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.