Javascript日期对象的dateAdd与dateDiff方法


Posted in Javascript onNovember 18, 2008
Date.prototype.dateAdd = function(interval,number) 
{ 
var d = this; 
var k={'y':'FullYear', 'q':'Month', 'm':'Month', 'w':'Date', 'd':'Date', 'h':'Hours', 'n':'Minutes', 's':'Seconds', 'ms':'MilliSeconds'}; 
var n={'q':3, 'w':7}; 
eval('d.set'+k[interval]+'(d.get'+k[interval]+'()+'+((n[interval]||1)*number)+')'); 
return d; 
} 
Date.prototype.dateDiff = function(interval,objDate2) 
{ 
var d=this, i={}, t=d.getTime(), t2=objDate2.getTime(); 
i['y']=objDate2.getFullYear()-d.getFullYear(); 
i['q']=i['y']*4+Math.floor(objDate2.getMonth()/4)-Math.floor(d.getMonth()/4); 
i['m']=i['y']*12+objDate2.getMonth()-d.getMonth(); 
i['ms']=objDate2.getTime()-d.getTime(); 
i['w']=Math.floor((t2+345600000)/(604800000))-Math.floor((t+345600000)/(604800000)); 
i['d']=Math.floor(t2/86400000)-Math.floor(t/86400000); 
i['h']=Math.floor(t2/3600000)-Math.floor(t/3600000); 
i['n']=Math.floor(t2/60000)-Math.floor(t/60000); 
i['s']=Math.floor(t2/1000)-Math.floor(t/1000); 
return i[interval]; 
}

dateAdd 方法
返回已添加指定时间间隔的日期对象。
dateObj.dateAdd(interval, number)
参数
dateObj
必选项。任意 Date 对象。
interval
必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number
必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
dateDiff 方法
返回两个日期对象之间的时间间隔。
dateObj.dateDiff(interval, dateObj2)
参数
interval
必选项。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
dateObj, dateObj2
必选项。日期对象。用于计算的两个日期对象。
设置
interval 参数可以有以下值:
设置 描述
y
q 季度
m
d
w
h 小时
n 分钟
s
ms 毫秒
Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - Parser 解析器
Sep 29 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 Javascript
jQuery的几个我们必须了解的特点
May 03 Javascript
Javascript实现飞动广告效果的方法
May 25 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
详解ES6之用let声明变量以及let loop机制
Jul 15 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
Aug 14 Javascript
angular1配合gulp和bower的使用教程
Jan 19 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 Javascript
Vue实现省市区三级联动
Dec 27 Vue.js
js电信网通双线自动选择技巧
Nov 18 #Javascript
JavaScript脚本性能优化注意事项
Nov 18 #Javascript
javascript 字符串连接的性能问题(多浏览器)
Nov 18 #Javascript
js的闭包的一个示例说明
Nov 18 #Javascript
Ext面向对象开发实践(续)
Nov 18 #Javascript
Javascript打印网页部分内容的脚本
Nov 17 #Javascript
js实现简单模态窗口,背景灰显
Nov 14 #Javascript
You might like
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
php实现监听事件
2013/11/06 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery中Ajax的get、post等方法详解
2015/01/20 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
python实现kNN算法
2017/12/20 Python
python迭代dict的key和value的方法
2018/07/06 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
档案接收函
2014/01/13 职场文书
工作保证书范文
2014/04/29 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
卖房授权委托书样本
2014/10/05 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
手把手教你导入Go语言第三方库
2021/08/04 Golang