设置一天中不同时段的倒计时,计算时针和分针的夹角
2017-03-11 10:55
288 查看
需求:获得一天5个不同阶段的倒计时,为期10天。
计数时段分比为:
第一时段9:00-11:59、第二时段12:00-17:59、第三时段18:00-20:59、第四时段21:00-23:59、第五时段次日0:00-8:59,共五个时段。
简单的写了如下:见第一部分。
当然真实肯定不是这样,稍微调整一下,要从服务器获取时间的,不要相信客户端时间,见第二部分。
DOM:
<div id="txt"></div>
JS:
-----------------------------第一部分--------------------------------------------
----------------------------第二部分-------------------------------
上面只是简单的测试看看的,真实要熊服务器获取时间,这样才能保证不必要的错误,稍微改写一下
3 、-------------------------------------------还没结束----------------------
加入用户是在某个倒计时结束的临界点左右停留呢?没有再次请求服务器,无法获取下个时段的倒计时结束时间,但是,上个阶段的倒计时已经结束,页面就是00:00:00了。
其实可以这么做:
第一种:在一个阶段的倒计时结束后马上发起ajax请求,获得下个时段的时间段
第二中:直接在零界点之后再次刷新页面,如果不考虑用户是否care的话,可以这么做。。。。。
如果想获取毫秒级的倒计时?
4、说道时间,让我想起了中学时代如何计算时针和分针的夹角;
计数时段分比为:
第一时段9:00-11:59、第二时段12:00-17:59、第三时段18:00-20:59、第四时段21:00-23:59、第五时段次日0:00-8:59,共五个时段。
简单的写了如下:见第一部分。
当然真实肯定不是这样,稍微调整一下,要从服务器获取时间的,不要相信客户端时间,见第二部分。
DOM:
<div id="txt"></div>
JS:
-----------------------------第一部分--------------------------------------------
function ShowCountDown() { var now = new Date(), year = now.getFullYear(), month = now.getMonth(), day = now.getDate(), h = now.getHours(), endDate; if (h >= 0 && h < 9) { endDate = new Date(year, month, day, 8, 59, 59); } else if (h >= 9 && h < 12) { endDate = new Date(year, month, day, 11, 59, 59); } else if (h >= 12 && h < 18) { endDate = new Date(year, month, day, 17, 59, 59); } else if (h >= 18 && h < 21) { endDate = new Date(year, month, day, 20, 59, 59); } else { endDate = new Date(year, month, day, 23, 59, 59); } var leftsecond = parseInt((endDate.getTime() - now.getTime()) / 1000); var hour = Math.floor(leftsecond / 3600); var minute = Math.floor((leftsecond - hour * 3600) / 60); var second = Math.floor(leftsecond - hour * 3600 - minute * 60); document.getElementById('txt').innerHTML = "距离此时段结束还有:" + hour + "小时" + minute + "分" + second + "秒"; countDowntimer = setTimeout(function() { ShowCountDown(); }, 1000); } ShowCountDown();
----------------------------第二部分-------------------------------
上面只是简单的测试看看的,真实要熊服务器获取时间,这样才能保证不必要的错误,稍微改写一下
function ShowCountDown(ele, startTime, endTime) { var startTimeArr = startTime.split(":"); var endTimeArr = endTime.split(":"); var startH = +startTimeArr[0], startM = +startTimeArr[1], startS = +startTimeArr[2], startDate = new Date(2017, 03, 10, startH, startM, startS).getTime(), endH = +endTimeArr[0], endM = +endTimeArr[1], endS = +endTimeArr[2], endDate = new Date(2017, 03, 10, endH, endM, endS).getTime(), leftsecond = (endDate - startDate) / 1000; var st = setInterval(function() { leftsecond -= 1; if (leftsecond == 0) { clearInterval(st); } getEndTime(leftsecond,ele); }, 1000); } function getEndTime(arg, ele) { hour = Math.floor(arg / 3600), minute = Math.floor((arg - hour * 3600) / 60), second = Math.floor(arg - hour * 3600 - minute * 60); document.getElementById(ele).innerHTML = hour + "小时" + minute + "分" + second + "秒"; } //参数一:dom元素; 参数二:用户访问页面服务器传回的时间; 参数三:服务器设置的各阶段截止时间。 // 如:startTime = '10:23:45'; endTime = '11:59:59' ShowCountDown('countdown', startTime, endTime);
3 、-------------------------------------------还没结束----------------------
加入用户是在某个倒计时结束的临界点左右停留呢?没有再次请求服务器,无法获取下个时段的倒计时结束时间,但是,上个阶段的倒计时已经结束,页面就是00:00:00了。
其实可以这么做:
第一种:在一个阶段的倒计时结束后马上发起ajax请求,获得下个时段的时间段
第二中:直接在零界点之后再次刷新页面,如果不考虑用户是否care的话,可以这么做。。。。。
如果想获取毫秒级的倒计时?
;(function(){ function leftTime(){ var endTime = new Date("2017/5/20,12:00:00");//结束时间 var curTime = new Date(); var leftTime = parseInt((endTime.getTime() - curTime.getTime())/1000); var d = parseInt(leftTime/(60*60*24)); var h = parseInt(leftTime/(60*60)%24); var m = parseInt(leftTime/60%60); var s = parseInt(leftTime%60); var ms = parseInt(((endTime.getTime() - curTime.getTime())/100)%10); var txt = "剩余:"+d+"天"+h+"小时"+m+"分钟"+s+"."+ms+"秒"; console.log(txt); }; leftTime(); var set = setInterval(leftTime,100); })();
4、说道时间,让我想起了中学时代如何计算时针和分针的夹角;
/** * [getAngleoff 时针每走过一分钟对应的角度是360/(12*60)=0.5°;分针没走过1分走过360/60=6°;] * @param {[type]} hour [时] * @param {[type]} minute [分] * @return {[type]} [角度] */ function getAngleoff(hour,minute){ var hourAngle = hour*30+minute*0.5, minuteAngle = minute*6, angngle = Math.abs(hourAngle-minuteAngle); return hour+":"+minute+'时针和分针的夹角是:'+ angngle +'°'; } getAngleoff(7,55) //"7:55时针和分针的夹角是:92.5°"
相关文章推荐
- 时针与分针夹角的计算方法
- 如何计算时针与分针夹角的度数
- 分针与时针之间夹角的计算
- HDU 5387 Clock(计算时针与分针 时针与秒针 分针与秒针的夹角)
- python题目-----计算时针分针夹角
- 计算时针与分针夹角的度数的算法
- 时针分针秒针一天重合几次
- 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?
- uva 579 ClockHands 几何初接触 求时针与分针的夹角
- uva 579 ClockHands 几何初接触 求时针与分针的夹角
- 在一天的24小时之中,时钟的时针、分针和秒针完
- 【小米面试题】-给定一个具体时间,计算时针与分针之间的角度
- 一天中时针,分针,秒针三者重合谜题C++程序验证
- 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出
- 在一天的24小时之中,时钟的时针、分针和秒针完整重合在一路的时辰有几回?都分辨是什么时光?你如何算出来的?
- 【模拟,时针分针秒针两两夹角】【没有跳坑好兴奋】hdu - 5387 (多校#8 1008)
- 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
- hdu2076(时针和分针的夹角)
- 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?
- 【算法学习】 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?