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使用查询手册
Mar 07 Javascript
js apply/call/caller/callee/bind使用方法与区别分析
Oct 28 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
Oct 23 Javascript
Jquery AJAX POST与GET之间的区别
Nov 14 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
Oct 16 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
EasyUI布局 高度自适应
Jun 04 Javascript
vue.js开发环境搭建教程
May 04 Javascript
关于javascript作用域的常见面试题分享
Jun 18 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
element多个表单校验的实现
May 27 Javascript
AngularJS实现多级下拉框
Mar 25 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 URL路由类实例
2013/11/12 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
nginx下安装php7+php5
2016/07/31 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
python使用Tkinter显示网络图片的方法
2015/04/24 Python
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
客户代表自我评价范例
2013/09/24 职场文书
生产管理的三大手法
2013/11/11 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
新品发布会主持词
2014/04/02 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
2014年应急工作总结
2014/12/11 职场文书
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers