最近在弄一个倒计时抽奖的项目,由于是每天的某个时间段所以,网上也没有找到自己合适的。就自己写了一个留下来以供参考。其中最值得注意的一点是不同种类型的手机对自定义的时间支持方式是不一样的。苹果时间只能支持/ 不支持- 安卓都可行。
下面是代码。
//苹果时间只能支持/ 不支持- var myDay = ["2016/01/22 10:00:00", "2016/01/22 16:00:00", "2016/01/24 12:00:00", "2016/01/24 14:00:00", "2016/01/24 15:00:00", "2016/01/25 10:00:00", "2016/01/25 11:00:00", "2016/01/25 12:00:00", "2016/01/25 14:00:00", "2016/01/25 15:00:00", "2016/01/26 10:00:00", "2016/01/26 11:00:00", "2016/01/26 12:00:00", "2016/01/26 14:00:00", "2016/01/26 15:00:00", ]; var hh = ""; var mm = ""; var ss = ""; var Day = ""; //开始时间 var starTime = ""; //持续时间 var continueTime = 3; //是否开始抽奖 默认不可以 var isStart = false; var flg = true; //第一次进入 var first = true; //服务器时间 var ServerTime = "<%=DateTime.Now%>"; $(function () { //第一次加载 ,防止中间的那一秒空缺 D_Time(); //累加服务器时间 setInterval(function () { ServerTime = new Date(ServerTime).getTime() + 1000; }, 1000); setInterval("D_Time()", 1000); }); function ChangeShowTime() { $.each(eval(myDay), function (i, item) { if (new Date(item).getDate() > new Date(ServerTime).getDate()) { starTime = item; return false; } //当天 if (new Date(item).getDate() == new Date(ServerTime).getDate()) { //大于当前小时 if (new Date(item).getHours() > new Date(ServerTime).getHours()) { starTime = item; return false; } //等于当前小时 else if (new Date(item).getHours() == new Date(ServerTime).getHours()) { //3分钟内 if (new Date(ServerTime).getMinutes() <= continueTime) { starTime = item; isStart = true; return false; } else { isStart = false; starTime = item; //return false; } } } }); } function D_Time() { ChangeShowTime(); if (isStart == true) { //3分钟之后 setInterval(function () { if (new Date(ServerTime).getMinutes() > continueTime) { isStart = false; } }, 1000); $("#timer").empty(); $("#timer").append("<b>0<em></em></b><b>0<em></em></b> <span>小时</span> <b>0<em></em></b><b>0<em></em>" + "</b><span>分钟</span><b>0<em></em></b> <b>0<em></em></b><span>秒</span>"); } else { // ChangeShowTime(); var myDate = new Date(ServerTime); var leftTime = new Date(starTime).getTime() - myDate.getTime(); var leftsecond = parseInt(leftTime / 1000); var seconds = leftTime / 1000; var minutes = Math.floor(leftsecond / 60); var hours = Math.floor(minutes / 60); var days = Math.floor(hours / 24); var CDay = days; var CHour = hours % 24 + CDay * 24; var CMinute = minutes % 60; var CSecond = Math.floor(seconds % 60); if (CHour < 10) { hh = "<b>0<em></em></b><b>" + CHour + "<em></em></b><span>"; } else { hh = "<b>" + CHour.toString().substr(0, 1) + "<em></em></b><b>" + CHour.toString().substr(1, 2) + "<em></em></b><span>"; } if (CMinute < 10) { mm = "</span><b>0<em></em></b><b>" + CMinute + "<em></em></b><span>"; } else { mm = "</span><b>" + CMinute.toString().substr(0, 1) + "<em></em></b><b>" + CMinute.toString().substr(1, 2) + "<em></em></b><span>"; } if (CSecond < 10) { ss = "</span><b>0<em></em></b><b>" + CSecond + "<em></em></b> <span>"; } else { ss = "</span><b>" + CSecond.toString().substr(0, 1) + "<em></em></b><b>" + CSecond.toString().substr(1, 2) + "<em></em></b> <span>"; } $("#timer").empty(); $("#timer").append("" + hh + "小时" + mm + "分钟" + ss + "秒</span>"); } }
原文:http://www.cnblogs.com/shuaif/p/5151658.html