项目中需要用到,自己写了一个。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>
以上所述就是本文的全部内容了,希望大家能够喜欢。
本文地址:https://www.stayed.cn/item/13456
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我