function doShowTime(){
var vShowTime = new Date();
var vYear = vShowTime.getFullYear();
var vMonth = vShowTime.getMonth()+1;
var vDate= vShowTime.getDate();
var vHours = vShowTime.getHours();
var vMinutes = vShowTime.getMinutes();
var vSeconds = vShowTime.getSeconds();
var tShowTime = vYear + "年" + vMonth + "月" + vDate+ "日";
tShowTime = tShowTime + vHours + "时" + vMinutes + "分" + vSeconds + "秒";
$("showTime").innerHTML = tShowTime;
t=setTimeout(function(){doShowTime()},1000);
}
<body onload="doShowTime()">
<div ID="showTime">此处显示时间</div>
</body>
今天实验了一下在网页上实时显示本地时间。
遇到的几个问题(感觉把能踩到的坑全都踩了一遍 Ծ‸Ծ):
显示效果如下:
1、收获了报错:vDay.getTime is not a function;
原因:重复定义:用 vDay 定义了 new Date(),然后又用 vDay 重新定义了 vDay.getDate();
2、用 getMonth() 获取的月份,比实际少一个月。
原因:月份为 0-11:所以实际显示的时候应该加上1。
3、用 getDay() 获取的日期不正确。
原因: 获取日期应为 getDate(),getDay() 返回的是当周第几天。
4、onload 写在 div 上不起作用。
原因:onload 仅支持放在 body, img, iframe
重新完善了一下:
t=setInterval(function doShowTime(){
var vShowTime = new Date();
var vMonth = vShowTime.getMonth()+1;
var vWeek = "星期"+ ["日", "一", "二", "三", "四", "五", "六"][new Date().getDay()];
var vMinute = vShowTime.getMinutes()<10 ? "0"+ vShowTime.getMinutes() : vShowTime.getMinutes();
var vSecond = vShowTime.getSeconds()<10 ? "0"+ vShowTime.getSeconds() : vShowTime.getSeconds();
var tShowTime = vShowTime.getFullYear() + "年" + vMonth + "月" + vShowTime.getDate() + "日 ";
tShowTime = tShowTime + vWeek;
tShowTime = tShowTime + " " + vShowTime.getHours() + ":" + vMinute + ":" + vSecond;
$("showTime").innerHTML = tShowTime;
},1000);