[JavaScript] 实时显示本地时间

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);

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值