因为 new date()只能获取系统本地时间,如果修改本地时间,new date()获取的就是修改后的时间。
在百度上查找了好多JS获取网络时间的方法
var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.3.0");
xmlhttp.open("GET", "http://bjtime.cn", false);
xmlhttp.setRequestHeader("If-Modified-Since", "bjtime");
xmlhttp.send();
var dateStr = xmlhttp.getResponseHeader("Date");
var date = new Date(dateStr);
var year = date.getFullYear();
var month = date.getMonth() + 1;
var date1 = date.getDate();
var hour = date.getHours();
var minutes = date.getMinutes();
var second = date.getSeconds();
alert(date + " | " + year + "年" + month + "月" + date1 + "日" + hour + "时" + minutes + "分" + second + "秒");
几乎都说的这个方法,但不知道为啥
var xmlhttp = new ActiveXObject(“MSXML2.XMLHTTP.3.0”);
这句话一直报错,换成别的对象但获得的只是1970年的
所以只好去寻找在后台获取网络时间,再用Ajax传到前台了
@RequestMapping("/getWebsiteDatetime")
public @ResponseBody MessageModel getWebsiteDatetime() {
MessageModel result = new MessageModel();
try {
URL url = new URL("http://www.ntsc.ac.cn");// 取得资源对象
URLConnection uc = url.openConnection();
uc.connect();// 发出连接
Long ld = uc.getDate();// 读取网站日期时间
result.setData(ld);
result.setSuccess(true);
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
这是后台代码,网络地址可以换成别的
下面是前台代码
function time() {
clearTimeout(timeId);
$.post("${ctx}/padV2/plan/getWebsiteDatetime", {
} ,function(r) {
dt = new Date(r.data);
var y = dt.getFullYear();
var mon = dt.getMonth() + 1;
var d = dt.getDate();
var h = dt.getHours();
var m = dt.getMinutes();
var s = dt.getSeconds();
var currentTime = "";
currentTime += y + "-";
if (mon > 9)
currentTime += mon + "-";
else
currentTime += "0" + mon + "-";
if (d > 9)
currentTime += d + " ";
else
currentTime += "0" + d + " ";
if (h > 9)
currentTime += h + ":";
else
currentTime += "0" + h + ":";
if (m > 9)
currentTime += m + ":";
else
currentTime += "0" + m + ":";
if (s > 9)
currentTime += s + "";
else
currentTime += "0" + s + "";
document.getElementById("currentTime").innerHTML = currentTime;
})
timeId = setTimeout(time, 1000);
}
弄了个时钟,但这种方法一秒发送一次请求的总感觉效率太低,如果只是获取个网络时间这个还是可以的
这是第一次写博客,以后希望可以把新学到的用博客记录下。