项目中需要用到,自己写了一个。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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我