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 相关文章推荐
取得一定长度的内容,处理中文
Dec 20 Javascript
js类中获取外部函数名的方法
Aug 19 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
Jun 11 Javascript
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
Sep 19 Javascript
JS对象转换为Jquery对象示例
Jan 26 Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 Javascript
js获取新浪天气接口的实现代码
Jun 06 Javascript
vue.js select下拉框绑定和取值方法
Mar 03 Javascript
JavaScript onclick事件使用方法详解
May 15 Javascript
jQuery实现简单评论功能
Aug 19 jQuery
html中创建并调用vue组件的几种方法汇总
Nov 17 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 中include()与require()的对比
2006/10/09 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
JS canvas实现画板和签字板功能
2021/02/23 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
对python sklearn one-hot编码详解
2018/07/10 Python
Python读写zip压缩文件的方法
2018/08/29 Python
python文件选择对话框的操作方法
2019/06/27 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
virtualenv介绍及简明教程
2020/06/23 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
社区学习雷锋活动总结
2014/04/25 职场文书
中学生运动会口号
2014/06/07 职场文书
宣传口号大全
2014/06/16 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
初中语文教学研修日志
2015/11/13 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
2019各种承诺书范文
2019/06/24 职场文书