zoukankan      html  css  js  c++  java
  • JS倒计时功能,给定时间返回规定格式倒计时时间

    重写了一下,增强了通用性,重写时发现月份和年份计算很复杂,因为月份天数不一样,年份又涉及平年闰年;
    本人数学实在不佳无法写出算法,哪位大大日后写出来了分享给小弟一份,谢谢~。

    
    
     1 <!doctype html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <title>无标题文档</title>
     6 </head>
     7 
     8 <body>
     9    <p id="disBlock"></p>
    10 </body>
    11 <script type="text/javascript">
    12     var results={millisecond:"", second:"",minute:"", hour:"",day:"",month:"",year:""};   //结果集
    13     //计算剩余
    14     function calcSurplus(fdate){
    15             var odate = new Date(fdate);  //未来的时间
    16             var cdate, surplusDate;       //当前时间,剩余时间
    17 /*            var year = new Date().getYear();   //当前年份
    18             var february = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 29 : 28; //计算二月份的天数
    19             var days = new Array(31,february,31,30,31,30,31,31,90,31,30,31);*/
    20             function result() {
    21                 cdate = new Date();   
    22                 surplusDate = odate.getTime() - cdate.getTime();  //未来时间与当前时间相差的毫秒
    23                 with(results){
    24                     millisecond = surplusDate % 1000;          //总毫秒数模1000就是换算为秒后剩余的毫秒
    25                     surplusDate -= millisecond;                //总毫秒减去剩余的毫秒
    26                     second = (surplusDate / 1000) % 60;        //(surplusDate / 1000)减去多余的毫秒剩下的毫秒/1000,
    27                     surplusDate -= second * 1000;              //则为剩余毫秒转换为秒后的数值,然后用该数值模60则为剩下的分钟
    28                     minute = (surplusDate / 60000) % 60;       //后面的运算以此类推,先减去前面已经算过的毫秒值
    29                     surplusDate -= minute * 60000;             //然后用当前毫秒除以当前单位的运算值,然后取模该单位的上级单位
    30                     hour = (surplusDate / 3600000) % 24;
    31                         surplusDate -= hour * 3600000;
    32                      day = (surplusDate / 86400000) ;  
    33                     /*surplusDate-=day*86400000;
    34                     month=(surplusDate / (86400000*days[cdate.getMonth()]))%12;
    35                     surplusDate-=month*(86400000*days[cdate.getMonth()]);
    36                     year=Math.floor(surplusDate/(86400000*(337+february)));   //年没有上级单位,所以只需要用剩下的毫秒去除以换算值然后在向下取整就可以了*/
    37                     /*                    year=Math.floor(surplusDate/(86400000*(365)));   //剩余年数
    38                     surplusDate-=year*31536000000;                    
    39                     for(var i=1;i<=year;i++){                 //对年数循环,检查需要走过多少个闰年
    40                            if((cdate.getYear() % 4 == 0 && cdate.getYear() % 100 != 0) || cdate.getYear() % 400 == 0 ){
    41                                surplusDate-=86400000;        //如果是闰年,多减一天的毫秒数
    42                                }
    43                         }*/
    44                     // 平年平均每月的毫秒数 2628000000
    45                     // 闰年平均每月的毫秒数 2635200000
    46 /*                    var mis=february==28?2628000000:2635200000;
    47                     month=(surplusDate/mis)%12;
    48                     surplusDate-=month*mis;*/     
    49                     }
    50                 return results;
    51             }
    52             return result;
    53     }
    54 
    55     var setHtml = calcSurplus("2015/07/12 16:08:11");
    56     
    57     setInterval(function(){
    58         setHtml();
    59         var html=/*results.year+"年"+results.month+"月"+*/results.day+""+results.hour+""+results.minute+""+results.second+""+results.millisecond+"毫秒";
    60         document.getElementById("disBlock").innerHTML=html;
    61         },1);
    62 </script>
    63 </html>
    
    
    
    
    
  • 相关阅读:
    帝国 标签模板 使用程序代码 去除html标记 并 截取字符串
    iis6 伪静态 iis配置方法 【图解】
    您来自的链接不存在 帝国CMS
    帝国cms Warning: Cannot modify header information headers already sent by...错误【解决方法】
    .fr域名注册 51元注册.fr域名
    帝国网站管理系统 恢复栏目目录 建立目录不成功!请检查目录权限 Godaddy Windows 主机
    星外虚拟主机管理平台 开通数据库 出现Microsoft OLE DB Provider for SQL Server 错误 '8004' 从字符串向 datetime 转换失败
    ASP.NET 自定义控件学习研究
    CSS层叠样式表之CSS解析机制的优先级
    ASP.NET程序员工作面试网络收藏夹
  • 原文地址:https://www.cnblogs.com/zurichguo/p/4496992.html
Copyright © 2011-2022 走看看