html5+datatime加减,javascript实现日期按月份加减

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

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();

}

方法二:

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);

}

};

方法三:

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())

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值