web前台获取服务器端时间

前段时间做一个需求,客户需要在页面显示当前的实时时间:HH:mm:ss,类似这种的。这种其实通过js就可以实现了,但是后来同事发现这样通过js在客户端获取时间和服务器端的时间有可能是不一致的。所以在网上找了很多资料,但是高深的js看不懂,而且通过js每秒都要请求一次服务器端也不科学啊。后来就使用Java在服务端在获取服务器端试试时间,然后传到前段隐藏控件内,再通过js或者jQuery获取,这样就可以了。

js代码:

function CurrentTime() {
var str = "";
var serverTime = $("#serverTime").val();
var svTime = serverTime.split(":");
// 创建时间对象
var time = new Date();
var hour = time.getHours();
var minute = time.getMinutes();
var second = time.getSeconds();
if (hour != svTime[0] && minute != svTime[1]) {
hour = parseInt(svTime[0]);
minute = parseInt(svTime[1])
second = parseInt(svTime[2]) + 1;
// alert(svTime[2]);
if (second >= 60) {
second = 0;
minute += 1;
if (minute >= 60) {
minute = 0;
hour += 1;
if (hour >= 24)
hour = 0;
}
}
}
if (hour < 10)
hour = '0' + hour;
if (minute < 10)
minute = '0' + minute;
if (second < 10)
second = '0' + second;
$("#serverTime").val(hour + ":" + minute + ":" + second);
if (hour == '00' && minute == '00' && second == '00') {
location.reload();
} else {
$("#hour").text(hour);
$("#min").text(minute);
$("#sec").text(second);
}


}
function Init() {
setInterval("CurrentTime()", 1000);
}


PS:当然这种请求,如果再打开网页的时候再去修改终端时间的时候,js还是不能和服务器端保持一致的。

你可能感兴趣的:(学习笔记-js)