var date = new Date(); //日期对象
var now = "";
now = date.getFullYear()+"-";
now = now + (date.getMonth()+1)+"-";
now = now + date.getDate();
alert(now);如何能计算出下个月和下周日期
日期格式还是类似 2012-10-29
var now = "";
now = date.getFullYear()+"-";
now = now + (date.getMonth()+1)+"-";
now = now + date.getDate();
alert(now);如何能计算出下个月和下周日期
日期格式还是类似 2012-10-29
Date.prototype.dateAdd = function(interval,number)
{
var d = this;
var k={'y':'FullYear', 'q':'Month', 'm':'Month', 'w':'Date', 'd':'Date'};
var n={'q':3, 'w':7};
eval('d.set'+k[interval]+'(d.get'+k[interval]+'()+'+((n[interval]||1)*number)+')');
return d;
}输出有些问题,例如今天是 2012-10-31
date.dateAdd('m',1) 结果是 2012-12-01 而不是2012-11-30
各位,能否帮忙改试试,TKS
function dateAdd(s, NumDay, dtDate) {
var dtTmp = new Date(dtDate);
if (isNaN(dtTmp)) dtTmp = new Date();
if(s=="w"){
dtTmp=new Date(Date.parse(dtTmp) + ((86400000 * 7) * NumDay));
}else{
dtTmp=new Date(dtTmp.getFullYear(),dtTmp.getMonth() + NumDay, dtTmp.getDate());
}
return dtTmp.getFullYear()+"-"+(dtTmp.getMonth() +1)+"-"+dtTmp.getDate()
}
var dtDate=new Date();//定义参考时间
var nw=dateAdd("w", 1, dtDate);
var nm=dateAdd("m", 1, dtDate);
var nnm=dateAdd("m", 2, dtDate);
var nnnm=dateAdd("m", 3, dtDate);
alert("下个周日期:"+nw);
alert("下个月日期:"+nm);
alert("下下个月日期:"+nnm);
alert("3个月后日期:"+nnnm);
{
var d = this;
var day = d.getDate(); //原日期部分
var k={'y':'FullYear', 'q':'Month', 'm':'Month', 'w':'Date', 'd':'Date'};
var n={'q':3, 'w':7};
eval('d.set'+k[interval]+'(d.get'+k[interval]+'()+'+((n[interval]||1)*number)+')');
if (d.getDate()!==day) d.setDate(0); //日期不等于原日期则跨月了,设成上月最后1日。
return d;
}
var d = new Date('2012-10-31T00:00+08:00')
alert(d.dateAdd('m',1))
alert(d.dateAdd('m',-1))
function dateAdd(s,dtDate) {
var dtTmp = new Date(dtDate);
if (isNaN(dtTmp)) dtTmp = new Date();
var m=dtTmp.getMonth();
if(s=="w"){
dtTmp=new Date(Date.parse(dtTmp) + 86400000 * 7);
}else{
dtTmp=new Date(dtTmp.getFullYear(),dtTmp.getMonth() + 1, dtTmp.getDate());
if(dtTmp.getMonth()>m+1){
dtTmp=new Date(dtTmp.getFullYear(),dtTmp.getMonth(), 0);
}
}
return dtTmp.getFullYear()+"-"+(dtTmp.getMonth() +1)+"-"+dtTmp.getDate()
}
alert(dateAdd("w",new Date(2012,10-1,29))); //得出 2012-11-5
alert(dateAdd("m",new Date(2012,10-1,31))); //得出 2012-11-30
//注意传入的月份比实现小1【0-11】