Welcome 微信登录

首页 / 脚本样式 / JavaScript / javascript实现日期按月份加减

项目中需要用到,自己写了一个。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> functionDateAdd(interval,number,date) { /**---------------DateAdd(interval,number,date)-----------------*DateAdd(interval,number,date) *功能:实现VBScript的DateAdd功能.*参数:interval,字符串表达式,表示要添加的时间间隔.*参数:number,数值表达式,表示要添加的时间间隔的个数.*参数:date,时间对象.*返回:新的时间对象.*varnow=newDate();*varnewDate=DateAdd( "d ",5,now);*author:wanghr100(灰豆宝宝.net)*update:2004-5-2811:46*---------------DateAdd(interval,number,date)-----------------*/ switch(interval) { case"y ":{ date.setFullYear(date.getFullYear()+number); returndate; break; } case"q ":{ date.setMonth(date.getMonth()+number*3); returndate; break; } case"m ":{ date.setMonth(date.getMonth()+number);returndate; break; } case"w ":{ date.setDate(date.getDate()+number*7);returndate; break; } case"d ":{ date.setDate(date.getDate()+number); returndate; break; } case"h ":{ date.setHours(date.getHours()+number);returndate; break; } case"m ":{ date.setMinutes(date.getMinutes()+number); returndate; break; } case"s ":{ date.setSeconds(date.getSeconds()+number); returndate; break; } default:{ date.setDate(d.getDate()+number); returndate; break; } } }varnow=newDate(); //加五天. varnewDate=DateAdd( "d ",5,now); alert(newDate.toLocaleDateString()) //加两个月. newDate=DateAdd( "m ",2,now); alert(newDate.toLocaleDateString()) //加一年 newDate=DateAdd( "y ",1,now); alert(newDate.toLocaleDateString()) </script>
以上所述就是本文的全部内容了,希望大家能够喜欢。