JavaScript 模仿vbs中的 DateAdd() 函数的代码

时间:2021-05-28

项目中需要用到日历,.net的日历控件又太重,只好用js写一个,日历的核心函数是DateAdd(),编写过程中发现js里面操作时间比想象中的繁琐,不像vbscript中的可以轻松地dateadd,后来才想到用setFullYear()、setDate()等内置函数,可以拼合一个js版的dateadd()来,代码如下:

复制代码 代码如下:
functionDateAdd(interval,number,date){//date可以是时间对象也可以是字符串,如果是后者,形式必须为:yyyy-mm-ddhh:mm:ss其中分隔符不定。"2006年12月29日16点01分23秒"也是合法的
number=parseInt(number);
if(typeof(date)=="string"){
date=date.split(/\D/);
--date[1];
eval("vardate=newDate("+date.join(",")+")");
}
if(typeof(date)=="object"){
vardate=date
}
switch(interval){
case"y":date.setFullYear(date.getFullYear()+number);break;
case"m":date.setMonth(date.getMonth()+number);break;
case"d":date.setDate(date.getDate()+number);break;
case"w":date.setDate(date.getDate()+7*number);break;
case"h":date.setHours(date.getHour()+number);break;
case"n":date.setMinutes(date.getMinutes()+number);break;
case"s":date.setSeconds(date.getSeconds()+number);break;
case"l":date.setMilliseconds(date.getMilliseconds()+number);break;
}
returndate;
}


这个函数已经尽量模仿vbscript中的dateadd函数,三个参数,第一个是变化的时间间隔,可以是年、月、日、周、时、分、秒、毫秒(扩展),第三个参数可以是时间对象,也可以是字符串(形式必须为:2006-12-2914:32:57或2006年12月29日14点32分57秒),函数的返回值是新的时间对象。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章