js 对日期的计算,加减天数

js对日期的一些运算

    • (1)计算两个日期相邻天数
    • (2-1)日期加天数算出新日期
    • (2-2)日期减去天数等于新日期
    • (3)获得某月的最后一天
    • (4)获取相关月份的季度月份

这里的输入日期使用"yyyy-MM-dd"的格式。可以直接使用这些方法

(1)计算两个日期相邻天数

function getDays(strDateStart,strDateEnd){
   var strSeparator = "-"; //日期分隔符
   var oDate1;
   var oDate2;
   var iDays;
   oDate1= strDateStart.split(strSeparator);
   oDate2= strDateEnd.split(strSeparator);
   var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
    var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
   iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24)//把相差的毫秒数转换为天数
   return iDays ;
}

(2-1)日期加天数算出新日期

function getNewDay(dateTemp, days) {  
    var dateTemp = dateTemp.split("-");  
    var nDate = new Date(dateTemp[1] + '-' + dateTemp[2] + '-' + dateTemp[0]); //转换为MM-DD-YYYY格式    
    var millSeconds = Math.abs(nDate) + (days * 24 * 60 * 60 * 1000);  
    var rDate = new Date(millSeconds);  
    var year = rDate.getFullYear();  
    var month = rDate.getMonth() + 1;  
    if (month < 10) month = "0" + month;  
    var date = rDate.getDate();  
    if (date < 10) date = "0" + date;  
    return (year + "-" + month + "-" + date);  
} 

(2-2)日期减去天数等于新日期

function getDateMinusDay(date,day){
//可以加上错误处理
    date=date.replace(/-/g,"/");
    var a = new Date(date);
    a = a.valueOf();
    a = a - day * 24 * 60 * 60 * 1000;
    a = new Date(a)
    var month =a.getMonth()+1;
    if(month<=9){
        month ='0'+month ;
    }
    return (a.getFullYear() + '-' + month + '-' + a.getDate());
}

(3)获得某月的最后一天

 function getLastDay(year,month) {        
             var new_year = year;    //取当前的年份         
             var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)         
             if(month>12) {        
	              new_month -=12;        //月份减         
	              new_year++;            //年份增         
             }        
             var new_date = new Date(new_year,new_month,1);                //取当年当月中的第一天         
             return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期         
        } 

(4)获取相关月份的季度月份

function getQuarter(month){
  if(month<4){
    return 3;
  }
  if(month<7 && month > 3){
    return 6;
  }
  if(month<10 && month > 6){
    return 9;
  }
  if(month<13 && month > 9){
    return 12;
  }
}

(方法大部分网上整理,并且自己有部分修改)

你可能感兴趣的:(前端,javascript,开发语言,ecmascript)