zoukankan      html  css  js  c++  java
  • js 计算过去和未来的时间距离现在多少天?

    计算传入的任意一时间。计算出这个时间距离现在还有多少天!或者计算过去的时间距离现在已经过去了多少天!

    返回值有两种!

    1、负值 代表过去了多少天

    2、正值 代表距离设定的时间还有多少天

    说明:距离设定的莫一天并不包括(设定的那一天),如果需要,计算的结果加1就可以了!

    /*格式 getBeforeDate('2015,5,20') */
    /*
    * auth:120975587@qq.com
    * time:2015.5.6 9:45
    * ******************
    */
    function getBeforeDate(n){
        var now = new Date();
        var aftertime = new Date(n);
        var year = now.getFullYear();
        var mon= now.getMonth()+1;
        var day= now.getDate();
        var year_after = aftertime.getFullYear();
        var mon_after = aftertime.getMonth()+1;
        var day_after = aftertime.getDate();
        var chs = 0;
        //获取当月的天数
        function DayNumOfMonth(Year,Month)
        {
            return 32 - new Date(Year,Month-1,32).getDate();
        }
        if(aftertime.getTime() - now.getTime() < 0){
            var temp1 = day_after;
            var temp2 = mon_after;
            var temp3 = year_after;
            day_after = day;
            mon_after = mon;
            year_after = year;
            day = temp1;
            mon = temp2;
            year = temp3;
        }
        if(year == year_after){//不跨年
            if(mon == mon_after){//不跨年不跨月
                chs += day_after-day;
            }else{//不跨年跨月
                chs += DayNumOfMonth(year,mon)- day+1;//加上第一个不满的
                for(var i=1;i< mon_after-mon;i++){
                    chs += DayNumOfMonth(year,mon+i);
                }
                chs += day_after-1;//加上
            }    
        }else{//存在跨年
            chs += DayNumOfMonth(year,mon)- day+1;//加上开始年份不满的一个月
            for(var m=1;m<12-mon;m++){
                chs += DayNumOfMonth(year,mon+m);
            }
            for(var j=1;j < year_after-year;j++){
                if((year+j)%400 == 0 || (year+j)%4 == 0 && (year+j)%100 != 0){
                    chs += 366;
                }else{
                    chs += 365;
                }
            }
            for(var n=1;n <= mon_after;n++){
                chs += DayNumOfMonth(year_after,n);
            }
            chs += day_after-1;
        }
        if(aftertime.getTime() - now.getTime() < 0){
            return -chs;
        }else{
             return chs;
        }
    }

     以上函数亲测是基本正确!但是测试数据不是很多,如有问题方便留下言,以便校正!谢谢!

  • 相关阅读:
    python for selenium 数据驱动测试
    iframe 处理
    百度登录、退出示例
    js弹框处理
    window.alert弹出处理
    通过网页内容识别和处理弹出窗口
    通过识别标题处理弹出窗口
    通过名称识别和处理弹出窗口
    发现github官网进不去了
    开发环境的搭建-记录一下
  • 原文地址:https://www.cnblogs.com/shizhouyu/p/4493875.html
Copyright © 2011-2022 走看看