【JavaScript】日期加減–DateAdd

<script language="JavaScript">
<!--
//日期加減  timeU︰類型  byMany︰間隔(正負數)  dateObj︰日期型態
function DateAdd(timeU,byMany,dateObj) {
    var millisecond=1;
    var second=millisecond*1000;
    var minute=second*60;
    var hour=minute*60;
    var day=hour*24;
    var year=day*365;
    
    var newDate;
    var dVal=dateObj.valueOf();
    var date=new Date(dateObj);  // For months
    switch(timeU) {
    case "ms": newDate=new Date(dVal+millisecond*byMany); break;
    case "s": newDate=new Date(dVal+second*byMany); break;    //秒
    case "mi": newDate=new Date(dVal+minute*byMany); break;   //分
    case "h": newDate=new Date(dVal+hour*byMany); break;     //時
    case "m": newDate=new Date(date.setMonth(date.getMonth() + byMany)); break;   //月
    case "d": newDate=new Date(dVal+day*byMany); break;    //日
    case "y": newDate=new Date(dVal+year*byMany); break;   //年
    }
    return newDate;
}

    //當下日期與時間
    var now = new Date();
    var years = now.getYear();        //年
    var months = now.getMonth()+1;    //月
    var days = now.getDate();         //日
    var hours = now.getHours();       //時
    var minutes = now.getMinutes();   //分

    //90天後日期
    NextNow = DateAdd("d",90,now);
    years = NextNow.getYear();
    months = NextNow.getMonth()+1;
    days = NextNow.getDate();
    hours = NextNow.getHours();

    //3個月後日期
    ThreeMonth = DateAdd("m",3,now);

    //1年後日期
    NextYear = DateAdd("y",1,now);

  //方法2 使用 setYear() setMonth()  setDate()
  //90天後日期
  var newdate = new Date();
  newdate.setDate(newdate.getDate()+90);
 
  //3個月後日期
   var newdate1 = new Date();
   newdate1.setMonth(newdate1.getMonth()+3);

   //1年後日期
   var newdate2 = new Date();
   newdate2.setYear(newdate2.getYear()+1);
   var newdate3 = new Date();
   newdate3.setDate(newdate3.getDate()+365);  //加365天通用
   
    document.write('目前日期︰'+now.getYear()+'/'+(now.getMonth()+1)+'/'+now.getDate()+'<br/><br/>');
    document.write('使用自訂 DateAdd函數 ********************<br/>');
    document.write('90天後日期︰'+years+'/'+months+'/'+days+'<br/>');
    document.write('3個月後日期︰'+ThreeMonth.getYear()+'/'+(ThreeMonth.getMonth()+1)+'/'+ThreeMonth.getDate()+'<br/>');
    document.write('1年後日期︰'+NextYear.getYear()+'/'+(NextYear.getMonth()+1)+'/'+NextYear.getDate()+'<br/><br/><br/>');

    document.write('透過內建函數 ********************<br/>');
    document.write('90天後日期︰'+newdate.getYear()+'/'+(newdate.getMonth()+1)+'/'+newdate.getDate()+'<br/>');
    document.write('3個月後日期︰'+newdate1.getYear()+'/'+(newdate1.getMonth()+1)+'/'+newdate1.getDate()+'<br/>');
    document.write('365天日期︰'+newdate3.getYear()+'/'+(newdate3.getMonth()+1)+'/'+newdate3.getDate()+'<br/>');
    document.write('1年後日期︰'+newdate2.getYear()+'/'+(newdate2.getMonth()+1)+'/'+newdate2.getDate()+'<br/><br/><br/>');

-->
</script>

執行畫面︰



留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄