参与一个项目遇到了部署的设备时间为出厂时间,且仅能自动联网更新时间,但由于该设备无法连接外网,所以要显示正确的时间只能从服务器获取。
服务器代码获取服务器的时间并返回
return new Date().getTime()
前端代码
async function showTime() {
let dt = null;
try {
let { ServerTime } = await request({ "url": "/getServerTime" })
//获取毫秒时间戳
dt = new Date(ServerTime);
console.log("获取服务器时间")
} catch (error) {
dt = new Date();
console.log("获取本地时间")
}finally{
var y = dt.getFullYear();
var mt = ((dt.getMonth() + 1) < 10 ? "0" + (dt.getMonth() + 1) : (dt.getMonth() + 1));
var day = ((dt.getDate()) < 10 ? "0" + (dt.getDate()) : (dt.getDate()));
var h = ((dt.getHours()) < 10 ? "0" + (dt.getHours()) : (dt.getHours()));
var m = ((dt.getMinutes()) < 10 ? "0" + (dt.getMinutes()) : (dt.getMinutes()));
var s = ((dt.getSeconds()) < 10 ? "0" + (dt.getSeconds()) : (dt.getSeconds()));
document.querySelector(".showTime").innerHTML = y + "-" + mt + "-" + day + " " + h + ":" + m + ":" + s; //(s<10?"0"+s:s)
t = setTimeout(time, 1000); //设定定时器,循环运行
function time() {
clearTimeout(t);//清除定时器
dt = new Date(dt.getTime() + 1000);
var y = dt.getFullYear();
var mt = ((dt.getMonth() + 1) < 10 ? "0" + (dt.getMonth() + 1) : (dt.getMonth() + 1));
var day = ((dt.getDate()) < 10 ? "0" + (dt.getDate()) : (dt.getDate()));
var h = ((dt.getHours()) < 10 ? "0" + (dt.getHours()) : (dt.getHours()));
var m = ((dt.getMinutes()) < 10 ? "0" + (dt.getMinutes()) : (dt.getMinutes()));
var s = ((dt.getSeconds()) < 10 ? "0" + (dt.getSeconds()) : (dt.getSeconds()));
document.querySelector(".showTime").innerHTML = y + "-" + mt + "-" + day + " " + h + ":" + m + ":" + s; //(s<10?"0"+s:s)
t = setTimeout(time, 1000); //设定定时器,循环运行
}
}
}