js 计算过去和未来的时间距离现在多少天?

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

返回值有两种!

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

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

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

/*格式 getBeforeDate(‘2015,5,20‘) */
/*
* auth:[email protected]
* 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;
    }
}

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

时间: 2024-11-06 03:28:56

js 计算过去和未来的时间距离现在多少天?的相关文章

JavaScript基础 计算现在时间 距离 未来一时间 相差多少天

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript基础 计算现在时间 距离 过去一时间 相差多少天

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

js计算两个时间相差的天数

day1='2014-03-31 00:00:01'; function get_day(day1,day2){ var s = day1; var dt = Date.parse(s.replace(/-/g,"/")); var day1 = new Date(dt); var s = day2; var dt = Date.parse(s.replace(/-/g,"/")); var day2 = new Date(dt); var date3=day1.g

js 计算两个时间的差

比如得到两个时间的字符串 2013-01-21 11:10:49   2013-01-21 11:14:43,要用后面的时间减去前面的时间 直接上代码 var begen = new Date(value[0]["createtime"]) var end = new Date(value[i]["createtime"]) var cha = end.getTime()-begen.getTime(); console.log(cha); console.log(

JS如何设置计算几天前的时间?

计算多少天前的具体时间.比如今天是9月5日,那7天前正常就是8月29了. 之前曾经直接用时间进行加减,吃了大亏,后来脑残到直接写了一个很复杂的计算闰年,闰月,30.31.28的月份 现在分享一下. function InitDateTime(day) { var nowDate = new Date() var agoDate = new Date(nowDate); var nowDay = nowDate.getDate(); var day = -day + nowDay; agoDate

js 计算请假时长(去除了周六日,节假日未清除)

js 计算请假时长(去除了周六日,节假日未清除) 2017-12-26 亦皓 <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <link href="./bootstrap/css/bootstrap.m

JS计算两时间差

//JS计算两时间差 //startDate:开始时间,endDate:结束时间(时间格式如:2018-5-18 11:51:40的字符串) function calDateDiffFn(startDate, endDate) { //时间差的毫秒数 var millSecsDiff = new Date(endDate).getTime() - new Date(startDate).getTime(); //计算出相差天数 var daysDiff = Math.floor(millSecs

IOS 计算两个经纬度之间的距离

一 丶 -(double)distanceBetweenOrderBy:(double) lat1 :(double) lat2 :(double) lng1 :(double) lng2{ CLLocation *curLocation = [[CLLocation alloc] initWithLatitude:lat1 longitude:lng1]; CLLocation *otherLocation = [[CLLocation alloc] initWithLatitude:lat2

JS 计算2个日期相差的天数

<span style="font-size:18px;">function getDays(strDateStart,strDateEnd){ var strSeparator = "-"; //日期分隔符 var oDate1; var oDate2; var iDays; oDate1= strDateStart.split(strSeparator); oDate2= strDateEnd.split(strSeparator); <spa