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 相关文章推荐
javascript 面向对象思想 附源码
Jul 07 Javascript
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
jquery实现输入框动态增减的实例代码
Jul 14 Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 Javascript
javascript动态创建链接的方法
May 13 Javascript
jQuery实现键盘回车搜索功能
Jul 25 jQuery
浅谈angular2路由预加载策略
Oct 04 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
详解原生JS动态添加和删除类
Mar 26 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 jQuery
js设计模式之代理模式及订阅发布模式实例详解
Aug 15 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
Aug 14 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和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
JS防抖和节流实例解析
2019/09/24 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python实现解数独程序代码
2017/04/12 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
python 深度学习中的4种激活函数
2020/09/18 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
数学系毕业生的自我评价
2014/01/10 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
美术课外活动总结
2014/07/08 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
工程技术员岗位职责
2015/04/11 职场文书
写给老师的保证书
2015/05/09 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android