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 相关文章推荐
[JS]点出统计器
Oct 11 Javascript
jquery自定义属性(类型/属性值)
May 21 Javascript
javascript对下拉列表框(select)的操作实例讲解
Nov 29 Javascript
简单选项卡 js和jquery制作方法分享
Feb 26 Javascript
深入浅析同源策略和跨域访问
Nov 26 Javascript
JavaScript 随机验证码的生成实例代码
Sep 22 Javascript
JS闭包与延迟求值用法示例
Dec 22 Javascript
原生js实现淘宝购物车功能
Jun 23 Javascript
一次记住JavaScript的6个正则表达式方法
Feb 22 Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
May 10 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伪造referer实例代码
2008/09/20 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
浅谈vuepress 踩坑记
2018/04/18 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python用模块pytz来转换时区
2016/08/19 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
ipython和python区别详解
2019/06/26 Python
pandas的qcut()方法详解
2019/07/06 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
Pygame框架实现飞机大战
2020/08/07 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
Java基础面试题
2012/11/02 面试题
2014年应届大学生自我评价
2014/01/09 职场文书
《燕子》教学反思
2014/02/18 职场文书
初二学习计划书范文
2014/04/27 职场文书
2015年母亲节寄语
2015/03/23 职场文书
贫困生证明范文
2015/06/16 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android