所以重写了Date对象的prototype,扩展了增加日期的方法,
代码如下:
Date.prototype.Format = function(fmt)
{
//author:
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)
}
}
var now = new Date()
now.addDays(1)//加减日期操作
alert(now.Format("yyyy-MM-dd"))
开始查了查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。
var today=new Date()// 获取今天时间today.setDate(today.getDate() + 7)// 系统会自动转换
下面是date类提供的三个你可能生成字符串用到的函数:
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。