JS倒计时功能,给定时间返回规定格式倒计时时间
2015-05-12 12:38
267 查看
重写了一下,增强了通用性,重写时发现月份和年份计算很复杂,因为月份天数不一样,年份又涉及平年闰年;
本人数学实在不佳无法写出算法,哪位大大日后写出来了分享给小弟一份,谢谢~。
本人数学实在不佳无法写出算法,哪位大大日后写出来了分享给小弟一份,谢谢~。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <p id="disBlock"></p> </body> <script type="text/javascript"> var results={millisecond:"", second:"",minute:"", hour:"",day:"",month:"",year:""}; //结果集 //计算剩余 function calcSurplus(fdate){ var odate = new Date(fdate); //未来的时间 var cdate, surplusDate; //当前时间,剩余时间 /* var year = new Date().getYear(); //当前年份 var february = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 29 : 28; //计算二月份的天数 var days = new Array(31,february,31,30,31,30,31,31,90,31,30,31);*/ function result() { cdate = new Date(); surplusDate = odate.getTime() - cdate.getTime(); //未来时间与当前时间相差的毫秒 with(results){ millisecond = surplusDate % 1000; //总毫秒数模1000就是换算为秒后剩余的毫秒 surplusDate -= millisecond; //总毫秒减去剩余的毫秒 second = (surplusDate / 1000) % 60; //(surplusDate / 1000)减去多余的毫秒剩下的毫秒/1000, surplusDate -= second * 1000; //则为剩余毫秒转换为秒后的数值,然后用该数值模60则为剩下的分钟 minute = (surplusDate / 60000) % 60; //后面的运算以此类推,先减去前面已经算过的毫秒值 surplusDate -= minute * 60000; //然后用当前毫秒除以当前单位的运算值,然后取模该单位的上级单位 hour = (surplusDate / 3600000) % 24; surplusDate -= hour * 3600000; day = (surplusDate / 86400000) ; /*surplusDate-=day*86400000; month=(surplusDate / (86400000*days[cdate.getMonth()]))%12; surplusDate-=month*(86400000*days[cdate.getMonth()]); year=Math.floor(surplusDate/(86400000*(337+february))); //年没有上级单位,所以只需要用剩下的毫秒去除以换算值然后在向下取整就可以了*/ /* year=Math.floor(surplusDate/(86400000*(365))); //剩余年数 surplusDate-=year*31536000000; for(var i=1;i<=year;i++){ //对年数循环,检查需要走过多少个闰年 if((cdate.getYear() % 4 == 0 && cdate.getYear() % 100 != 0) || cdate.getYear() % 400 == 0 ){ surplusDate-=86400000; //如果是闰年,多减一天的毫秒数 } }*/ // 平年平均每月的毫秒数 2628000000 // 闰年平均每月的毫秒数 2635200000 /* var mis=february==28?2628000000:2635200000; month=(surplusDate/mis)%12; surplusDate-=month*mis;*/ } return results; } return result; } var setHtml = calcSurplus("2015/07/12 16:08:11"); setInterval(function(){ setHtml(); var html=/*results.year+"年"+results.month+"月"+*/results.day+"天"+results.hour+"时"+results.minute+"分"+results.second+"秒"+results.millisecond+"毫秒"; document.getElementById("disBlock").innerHTML=html; },1); </script> </html>
相关文章推荐
- JS实现针对给定时间的倒计时功能示例
- js 时间转成时间戳对比;My97DatePicker日历控件时间格式;Date.parse Firefox火狐浏览器返回Nan的解决办法
- 原生js实现节日时间倒计时功能
- Js 转换Json返回的时间格式(转)
- 使用js实现显示系统当前时间并实现倒计时功能并触发模态框(遮罩)功能
- js 时间计算(加减天数、返回当前时间后一个星期的日期,返回格式yyyy-MM-dd)
- 用js转换joson返回数据库的时间格式为/Date(*************)/
- 用js实现下列功能,将给定的数字转化为千分位的格式,如把"10000"转化为"10,000",并考虑性能方面的因素
- js基于服务器时间的倒计时功能
- C#返回时间格式转换成 js 字符串
- 关于几个js获取当前时间和处理返回数据改变时间格式的函数
- js基于服务器时间的倒计时功能
- json返回数据库的时间格式为/Date(1332919782070)/,在前台用js怎么转换
- js实现网页倒计时、网站已运行时间功能的代码3例
- 基于服务器时间的倒计时功能js
- 在JS中如何把毫秒转换成规定的日期时间格式实例
- joson返回数据库的时间格式在前台用js转换
- 原生js实现倒计时功能,创建元素div插入元素,时间结束替换倒计时功能,移除元素
- js比较日期格式大小 功能da1=da2返回真
- js实现网页倒计时、网站已运行时间功能的代码3例