首页 > 编程 > JavaScript > 正文

javascript实现日期按月份加减

2019-11-20 12:28:16
字体:
来源:转载
供稿:网友

项目中需要用到,自己写了一个。javascript日期按月加减

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>  <meta charset="utf-8">  <title></title>  <script>    function dateToDate(date) {      var sDate = new Date();      if (typeof date == 'object'        && typeof new Date().getMonth == "function"        ) {        sDate = date;      }      else if (typeof date == "string") {        var arr = date.split('-')        if (arr.length == 3) {          sDate = new Date(arr[0] + '-' + arr[1] + '-' + arr[2]);        }      }      return sDate;    }    function addMonth(date, num) {      num = parseInt(num);      var sDate = dateToDate(date);      var sYear = sDate.getFullYear();      var sMonth = sDate.getMonth() + 1;      var sDay = sDate.getDate();      var eYear = sYear;      var eMonth = sMonth + num;      var eDay = sDay;      while (eMonth > 12) {        eYear++;        eMonth -= 12;      }      var eDate = new Date(eYear, eMonth - 1, eDay);      while (eDate.getMonth() != eMonth - 1) {        eDay--;        eDate = new Date(eYear, eMonth - 1, eDay);      }      return eDate;    }    function calcDate() {      var d = document.getElementById('date').value;      var n = document.getElementById('num').value;      var eDate = addMonth(d, n);      document.getElementById('result').innerHTML = eDate.getFullYear() + '-' + (eDate.getMonth() + 1) + '-' + eDate.getDate();    }  </script></head><body>  <input type="date" id="date" />  <input type="number" id="num" value="1" />  <input type="button" value="计算" onclick="calcDate()" />  <div id="result"></div></body></html>

方法二:

<script language="javascript">Date.prototype.Format = function(fmt) {//代码作者: meizz var o ={ "M+" : this.getMonth() + 1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth() + 3) / 3), //季度 "S" : this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; }Date.prototype.addDays = function(d){this.setDate(this.getDate() + d);};Date.prototype.addWeeks = function(w){this.addDays(w * 7);};Date.prototype.addMonths= function(m){var d = this.getDate();this.setMonth(this.getMonth() + m);if (this.getDate() < d)this.setDate(0);};Date.prototype.addYears = function(y){var m = this.getMonth();this.setFullYear(this.getFullYear() + y);if (m < this.getMonth()) {this.setDate(0);}};</script>

方法三:

<script> function  DateAdd(interval,number,date) { /*  *---------------  DateAdd(interval,number,date)  -----------------  *  DateAdd(interval,number,date)   *  功能:实现VBScript的DateAdd功能.  *  参数:interval,字符串表达式,表示要添加的时间间隔.  *  参数:number,数值表达式,表示要添加的时间间隔的个数.  *  参数:date,时间对象.  *  返回:新的时间对象.  *  var  now  =  new  Date();  *  var  newDate  =  DateAdd( "d ",5,now);  *  author:wanghr100(灰豆宝宝.net)  *  update:2004-5-28  11:46  *---------------  DateAdd(interval,number,date)  -----------------  */     switch(interval)     {         case  "y "  :  {             date.setFullYear(date.getFullYear()+number);             return  date;             break;         }         case  "q "  :  {             date.setMonth(date.getMonth()+number*3);             return  date;             break;         }         case  "m "  :  {             date.setMonth(date.getMonth()+number);            return  date;             break;         }         case  "w "  :  {             date.setDate(date.getDate()+number*7);            return  date;             break;         }         case  "d "  :  {             date.setDate(date.getDate()+number);             return  date;             break;         }         case  "h "  :  {             date.setHours(date.getHours()+number);            return  date;             break;         }         case  "m "  :  {             date.setMinutes(date.getMinutes()+number);             return  date;             break;         }         case  "s "  :  {             date.setSeconds(date.getSeconds()+number);             return  date;             break;         }         default  :  {             date.setDate(d.getDate()+number);             return  date;             break;         }     } }var  now  =  new  Date(); //加五天. var  newDate  =  DateAdd( "d ",5,now); alert(newDate.toLocaleDateString()) //加两个月. newDate  =  DateAdd( "m ",2,now); alert(newDate.toLocaleDateString()) //加一年 newDate  =  DateAdd( "y ",1,now); alert(newDate.toLocaleDateString()) </script>

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表