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 图片延迟加载并等比缩放插件
Nov 09 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
Sep 28 Javascript
JavaScript学习笔记(二) js对象
Oct 25 Javascript
jquery删除ID为sNews的tr元素的内容
Apr 10 Javascript
详解JavaScript基于面向对象之继承实例
Dec 16 Javascript
javascript实现数组去重的多种方法
Mar 14 Javascript
JS 拦截全局ajax请求实例解析
Nov 29 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
JavaScript 九种跨域方式实现原理
Feb 11 Javascript
微信小程序 如何获取网络状态
Jul 26 Javascript
用webAPI实现图片放大镜效果
Nov 23 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
Banner程序
2006/10/09 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
php邮件发送,php发送邮件的类
2011/03/24 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
深入学习Python中的装饰器使用
2016/06/20 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
小车司机岗位职责
2013/11/25 职场文书
初中生个人学习的自我评价
2013/12/04 职场文书
自荐书范文范例
2014/02/13 职场文书
财产公证书
2014/04/10 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
排查整治工作方案
2014/06/09 职场文书
宣传口号大全
2014/06/16 职场文书
违纪检讨书
2015/01/27 职场文书
投资申请报告
2015/05/19 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL