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 相关文章推荐
IE6不能修改NAME问题的解决方法
Sep 03 Javascript
jquery 全局AJAX事件使用代码
Nov 05 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
May 19 Javascript
JS实现的最简Table选项卡效果
Oct 14 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
Jan 05 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
Mar 29 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
Sep 13 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
Dec 11 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
weui上传多图片,压缩,base64编码的示例代码
Jun 22 Javascript
js实现筛选功能
Nov 24 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
thinkphp整合微信支付代码分享
2016/11/24 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
基于jQuery的history历史记录插件
2010/12/11 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
在漏洞利用Python代码真的很爽
2007/08/26 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
python实现简易版计算器
2020/06/22 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
python Xpath语法的使用
2020/11/26 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
关于VPN
2012/06/10 面试题
医师定期考核实施方案
2014/05/07 职场文书
学校国庆节活动总结
2015/03/23 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL