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实现用户注册的表单验证示例
Aug 28 Javascript
jquery $(this).attr $(this).val方法使用介绍
Oct 08 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 Javascript
快速掌握jQuery插件WebUploader文件上传
Nov 07 Javascript
JS中如何实现复选框全选功能
Dec 19 Javascript
javascript实现页面滚屏效果
Jan 17 Javascript
浅谈React前后端同构防止重复渲染
Jan 05 Javascript
vue代理和跨域问题的解决
Jul 18 Javascript
vue 实现移动端键盘搜索事件监听
Nov 06 Javascript
JavaScript switch语句使用方法简介
Dec 30 Javascript
微信小程序实现滚动Tab选项卡
Nov 16 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实现用户认证及管理完全源码
2007/03/11 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
asp 的 分词实现代码
2007/05/24 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
社区工作者感言
2014/03/02 职场文书
代办委托书怎样写
2014/04/08 职场文书
创先争优标语
2014/06/27 职场文书
文明班级申报材料
2014/12/24 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
爱国教育主题班会
2015/08/14 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
python生成随机数、随机字符、随机字符串
2021/04/06 Python
sql server 累计求和实现代码
2022/02/28 SQL Server
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫