A5下载文章资讯

分类分类

javascript实现日期按月份加减

2015-05-15 10:18作者:zhao

项目中需要用到,自己写了一个。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>

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

 

展开全部

相关

说两句网友评论
    我要跟贴
    取消