js中的dateAdd和dateDiff

日期:2008-11-16    阅读:415   分类:Javascript

/* 得到日期年月日等加数字后的日期 */
Date.prototype.dateAdd = function(interval,number)
{
var d = this;
var k={"y":"FullYear", "q":"Month", "m":"Month", "w":"Date", "d":"Date", "h":"Hours", "n":"Minutes", "s":"Seconds", "ms":"MilliSeconds"};
var n={"q":3, "w":7};
eval("d.set"+k[interval]+"(d.get"+k[interval]+"()+"+((n[interval]||1)*number)+")");
return d;
};
/* 计算两日期相差的日期年月日等 */
Date.prototype.dateDiff = function(interval,objDate)
{
var d=this, t=d.getTime(), t2=objDate.getTime(), i={};
i["y"]=objDate.getFullYear()-d.getFullYear();
i["q"]=i["y"]*4+Math.floor(objDate.getMonth()/4)-Math.floor(d.getMonth()/4);
i["m"]=i["y"]*12+objDate.getMonth()-d.getMonth();
i["ms"]=objDate.getTime()-d.getTime();
i["w"]=Math.floor((t2+345600000)/(604800000))-Math.floor((t+345600000)/(604800000));
i["d"]=Math.floor(t2/86400000)-Math.floor(t/86400000);
i["h"]=Math.floor(t2/3600000)-Math.floor(t/3600000);
i["n"]=Math.floor(t2/60000)-Math.floor(t/60000);
i["s"]=Math.floor(t2/1000)-Math.floor(t/1000);
return i[interval];
};

/*调用例子*/
window.onload = function(){
/*
interval:类型参数,可为:"y":"FullYear", "q":"Month", "m":"Month", "w":"Date", "d":"Date", "h":"Hours", "n":"Minutes", "s":"Seconds", "ms":"MilliSeconds"
number:对应加上的数值
*/
var d1 = new Date();
alert(d1.toLocaleString());
d1.dateAdd("y" ,1);
alert(d1.toLocaleString());/*加1年*/

/*
interval:类型参数,可为:"y":"FullYear", "q":"Month", "m":"Month", "w":"Date", "d":"Date", "h":"Hours", "n":"Minutes", "s":"Seconds", "ms":"MilliSeconds"
objDate:日期对象
*/
var d2 = new Date();
alert("相隔了"+ d2.dateDiff("y" ,d1) +"年");
};

本页链接: http://www.scriptlover.com/static/194-js-dateAdd-dateDiff

标签:

相关文章

网友评论

Leave a comment

 required

 required (Not published)

 required