1. 程式人生 > 其它 >js 計算過去和未來的時間距離現在多少天?

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; } }