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


Posted in Javascript onAugust 13, 2007

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

function DateAdd(interval,number,date){ // date 可以是时间对象也可以是字符串,如果是后者,形式必须为: yyyy-mm-dd hh:mm:ss 其中分隔符不定。"2006年12月29日 16点01分23秒" 也是合法的  
number = parseInt(number);  
if (typeof(date)=="string"){  
date = date.split(/\D/);  
--date[1];  
eval("var date = new Date("+date.join(",")+")");  
}  
if (typeof(date)=="object"){  
var date = 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;  
}   
return date;  
} 

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

Javascript 相关文章推荐
jquery的index方法实现tab效果
Feb 16 Javascript
js 函数调用模式小结
Dec 26 Javascript
在jquery中combobox多选的不兼容问题总结
Dec 24 Javascript
用jquery写的一个万年历(自写)
Jan 20 Javascript
javascript实现实时输出当前的时间
Apr 27 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
Jan 04 Javascript
JS交互点击WKWebView中的图片实现预览效果
Jan 05 Javascript
vue中使用codemirror的实例详解
Nov 01 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
localstorage实现带过期时间的缓存功能
Jun 28 Javascript
vue使用codemirror的两种用法
Aug 27 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
Oct 26 Javascript
用JavaScript 处理 URL 的两个函数代码
Aug 13 #Javascript
增强的 JavaScript 的 trim 函数的代码
Aug 13 #Javascript
让回调函数 showResponse 也带上参数的代码
Aug 13 #Javascript
分析 JavaScript 中令人困惑的变量赋值
Aug 13 #Javascript
IE/FireFox具备兼容性的拖动代码
Aug 13 #Javascript
JavaScript 编程引入命名空间的方法与代码
Aug 13 #Javascript
权威JavaScript 中的内存泄露模式
Aug 13 #Javascript
You might like
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
javascript 二进制运算技巧解析
2012/11/27 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
react+redux的升级版todoList的实现
2017/12/18 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
python 生成不重复的随机数的代码
2011/05/15 Python
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
利用Python中的pandas库对cdn日志进行分析详解
2017/03/07 Python
python win32 简单操作方法
2017/05/25 Python
python构建深度神经网络(DNN)
2018/03/10 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
个性大学生自我评价
2013/12/04 职场文书
求职信模板怎么做
2014/01/26 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书