js倒计时

本文详细介绍了如何实现倒计时功能,并通过正则表达式获取到期时间,计算剩余时间,然后将时间转换为指定格式进行显示。同时,提供了一个用于验证输入时间是否有效的函数,确保了功能的稳定性和可靠性。
                      //倒计时
			function show_time() {
				//正数表达式
				var re = /^\d+(?=\.{0,1}\d+$|$)/;
				var nd = 1000 * 24 * 60 * 60;
				var nh = 1000 * 60 * 60;
				var nm = 1000 * 60;
				var ns = 1000;
				var diff = jQuery("#orderCountDown").val();//到期时间
				var now = format(new Date(), 'yyyy-MM-dd HH:mm:ss');//当前时间
				//计算剩余的毫秒数
				var myDiffTime = eval("new Date("+ diff.replace(/\D+/g,",")+")").getTime();
				var myNowTime = eval("new Date("+ now.replace(/\D+/g,",")+")").getTime();
				var ts = myDiffTime - myNowTime;
				var dd = parseInt(ts / nd);//计算差多少天
				var hh = parseInt(ts % nd / nh) + parseInt(+dd * 24);//计算差多少小时
				var mm = parseInt(ts % nd % nh / nm);//计算差多少分钟
				var ss = parseInt(ts % nd % nh % nm / ns);//计算差多少秒
				dd = checkTime(dd);
				hh = checkTime(hh);
				mm = checkTime(mm);
				ss = checkTime(ss);
				
				if (re.test(ts)) {
					// 显示时间 
					$(".time_d").text(dd);
					$(".time_h").text(hh);
					$(".time_m").text(mm);
					$(".time_s").text(ss);
					$(".time_ms").text(ts);

				} else {
					$(".time_h").text("00");
					$(".time_m").text("00");
					$(".time_s").text("00");
					$(".time_ms").text("00");
				}
				// 设置定时器
				setTimeout("show_time()", 1000);
			};

			function checkTime(i) {
				if (i < 10) {
					i = "0" + i;
				}
				return i;
			};

			//将中国标准时间转化为指定格式时间  
			var format = function(time, format) {
				var t = new Date(time);
				var tf = function(i) {
					return (i < 10 ? '0' : '') + i
				};
				return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a) {
					switch (a) {
					case 'yyyy':
						return tf(t.getFullYear());
						break;
					case 'MM':
						return tf(t.getMonth() + 1);
						break;
					case 'mm':
						return tf(t.getMinutes());
						break;
					case 'dd':
						return tf(t.getDate());
						break;
					case 'HH':
						return tf(t.getHours());
						break;
					case 'ss':
						return tf(t.getSeconds());
						break;
					}
				})
			};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值