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应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
JavaScript 创建运动框架的实现代码
May 08 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
Jul 07 Javascript
禁止页面刷新让F5快捷键及右键都无效
Jan 22 Javascript
javascript:json数据的页面绑定示例代码
Jan 26 Javascript
JS实现具备延时功能的滑动门菜单效果
Sep 17 Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 Javascript
javascript基本语法
May 31 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
Jul 28 Javascript
微信开发 使用picker封装省市区三级联动模板
Oct 28 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
微信小程序实现时间进度条功能
Nov 17 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防注入类实例
2014/12/05 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
python 文件与目录操作
2008/12/24 Python
分享Python文本生成二维码实例
2016/01/06 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
Python温度转换实例分析
2018/01/17 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
用Python进行websocket接口测试
2020/10/16 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
剪枝的学问教学反思
2014/02/07 职场文书
创业融资计划书
2014/04/25 职场文书
辅导员评语
2014/05/04 职场文书
读书之星事迹材料
2014/05/12 职场文书
文明城市创建标语
2014/06/16 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
通知范文怎么写
2015/04/16 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书