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 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
javascript 保存文件到本地实现方法
Nov 29 Javascript
Node.js编程中客户端Session的使用详解
Jun 23 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
jQuery过滤选择器经典应用
Aug 18 Javascript
微信小程序 购物车简单实例
Oct 24 Javascript
Javascript数组中push方法用法分析
Oct 31 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
Apr 24 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
vue、react等单页面项目应该这样子部署到服务器
Jan 03 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
浅谈VUE中演示v-for为什么要加key
Jan 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
搜索引擎技术核心揭密
2006/10/09 PHP
在JavaScript中调用php程序
2009/03/09 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
javascriptvoid(0)含义以及与"#"的区别讲解
2019/01/19 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python抖音表白程序源代码
2019/04/07 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
基于Python实现粒子滤波效果
2020/12/01 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
商务英语本科生的自我评价分享
2013/11/15 职场文书
干部鉴定材料
2014/05/18 职场文书
八项规定整改方案
2014/10/01 职场文书
庆六一开幕词
2015/01/29 职场文书
MySQL批量更新不同表中的数据
2022/05/11 MySQL