js实现倒计时

直接上代码:

<body>
  <div id="time">
    年: <input type="number" min="2017" max="2020" value="2017" /></br>
    月: <input type="number" min="1" max="12" value="1" /></br>
    日: <input type="number" min="1" max="31" value="27" />
    <p><button id="btn1">开始倒计时</button><button id="btn2">停止倒计时</button></p>
    <p>现在距离:<b>2017 年 1 月 27 日</b> 还剩 </p>
    <div id="start">
      <span>00</span>天
      <span>00</span>小时
      <span>00</span>分
      <span>00</span>秒
    </div>
  </div>
</body>

	<script>
			function $(el) {
				if(typeof(el) == 'string') {
					return(document.getElementById(el));
				}
				return(el);
			}

			function fillZero(num, digit) {
				var str = '' + num;
				if(str.length < digit) {
					str = '0' + str;
				}
				return str;
			}
			window.onload = function() {
				var oDiv1 = $('time');
				var aInput = oDiv1.getElementsByTagName('input');
				var oYear = aInput[0]; //年
				var oMonth = aInput[1]; //月
				var oDay = aInput[2] //日
				var oDiv2 = $('start');
				var aSpan = oDiv2.getElementsByTagName('span');
				var sTxtDay = aSpan[0]; //天
				var sTxtHour = aSpan[1] //小时
				var sTxtMin = aSpan[2] //分
				var sTxtSec = aSpan[3] //秒
				var oTxtTarget = document.getElementsByTagName('b')[0];
				var timer = null;
				$('btn1').onclick = function() {
					timer = setInterval(updateTime, 1000);
					updateTime();
				}
				$('btn2').onclick = function() {
					clearInterval(timer);
				}

				function updateTime() {

					var sYear = Math.abs(oYear.value);
					var sMonth = Math.abs(oMonth.value);
					var sDay = Math.abs(oDay.value);
					if(sMonth > 12 || sDay > 31){
						clearInterval(timer);
						alert('嗯哼');
						return;
					}
					oTxtTarget.innerHTML = sYear + ' 年 ' + sMonth + ' 月 ' + sDay + ' 日 ';
					var oEndDate = new Date(sYear, (sMonth - 1), sDay);
					var oNowDate = new Date();
					var iRemain = 0;
					iRemain = parseInt((oEndDate.getTime() - oNowDate.getTime()) / 1000);
					if(iRemain <= 0) { //判断开始时间是否小于或等于今天
						clearInterval(timer);
						iRemain = 0;
						alert('请输入大于今天的时间');
					}
					var iDay = parseInt(iRemain / 86400); //剩余天数

					iRemain %= 86400;
					var iHour = parseInt(iRemain / 3600); //剩余小时

					iRemain %= 3600;
					var iMin = parseInt(iRemain / 60); //剩余分钟

					iRemain %= 60;
					var iSec = iRemain; //剩余秒

					sTxtDay.innerHTML = fillZero(iDay, 2);
					sTxtHour.innerHTML = fillZero(iHour, 2);
					sTxtMin.innerHTML = fillZero(iMin, 2);
					sTxtSec.innerHTML = fillZero(iSec, 2);
				}


			}
		</script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值