如何用js进行日期的加减

JavaScript09

如何用js进行日期的加减,第1张

如题,开始查了查js的使用文档,但没发现可以直接用的函数,于是就想自己写函数来着,这就要涉及到每个月天数的判断,如果是2月份的话,还要涉及到闰年的判断,虽然不复杂但我想js应该不会这么低级,于是查了下资料,终于有了如下重大发现,以在某个日期上加减天数来说,其实只要调用Date对象的setDate()函数就可以了,具体方法如下:

function addDate(date,days){

var d=new Date(date)

d.setDate(d.getDate()+days)

var m=d.getMonth()+1

return d.getFullYear()+'-'+m+'-'+d.getDate()

}

其中,date参数是要进行加减的日期,days参数是要加减的天数,如果往前算就传入负数,往后算就传入正数,如果是要进行月份的加减,就调用setMonth()和getMonth()就可以了,需要注意的是返回的月份是从0开始计算的,也就是说返回的月份要比实际月份少一个月,因此要相应的加上1。

// 给日期类对象添加日期差方法,返回日期与diff参数日期的时间差,单位为天

Date.prototype.diff = function(date){

return (this.getTime() - date.getTime())/(24 * 60 * 60 * 1000)

}

// 构造两个日期,分别是系统时间和2013/04/08 12:43:45

var now = new Date()

var date = new Date('2013/04/08 12:43:45')

// 调用日期差方法,求得参数日期与系统时间相差的天数

var diff = now.diff(date)

// 打印日期差

alert(diff)