想在JS获取实时的时间其实很简单,就几句代码的事,new Date()已经能把当前的时间获取到了(只是不会动罢了);tm是我想传到输入框的id;time.value = d返回d(new Date())的value属性的值;setTimeout第一个参数是对函数的调用,第二个参数指示从当前起多少毫秒后执行第一个参数(1000毫秒等于1秒)。
function showTime() {
var d = new Date();
var time = document.getElementById("tm");
time.value = d;
setTimeout("showTime()", 1000);
}
记得在页面加载事件里调用哦,不然用不了的。
这是输出的效果图,能看得懂但不是很美观(我只想要年月日时分秒)。
这才是我想要的效果,虽然代码会多那么一点点。。。
js代码:
//获取当前时间
function showTime() {
var d = new Date();
var time = document.getElementById("tm");
var year = d.getFullYear();
var month = d.getMonth() + 1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var minute1 = "0" + minute;
var minute2 = minute1.substring(minute1.length - 2);
var second = d.getSeconds();
var secondTmp = "0" + second;
var secondNew = secondTmp.substring(secondTmp.length - 2);
var s = year + "-" + month + "-" + day + " " + hour + ":" + minute2 + ":" + secondNew;
time.value = s;
setTimeout("showTime()", 1000);
}
至于你问我为什么获取月份时加了个1,明明是五月了,我获取到的是四。。呃,或许获取的是索引值吧(索引从零开始)。
在分和秒拼前面接了个0是因为当分和秒只有一位数时,显示也是一位数(我想它获取一位数时显示两位数),可能你想问了,这样获取两位数时,显示的不就是三位数了吗,所以我用到了substring(length - 2) 获取到最后的两位数,substring()函数返回字符串的指定部分,不接受负的参数。
年月日时分秒每一个的样式都写好了,剩下把他们拼接起来再输出就可以了。