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 相关文章推荐
实现png图片和png背景透明(支持多浏览器)的方法
Sep 08 Javascript
JavaScript 打地鼠游戏代码说明
Oct 12 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
自写的jQuery异步加载数据添加事件
May 15 Javascript
JavaScript事件委托实例分析
May 26 Javascript
浅谈JavaScript中的作用域和闭包问题
Jul 07 Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
Jun 12 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
Aug 19 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 Javascript
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
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
php中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
微信小程序 PHP后端form表单提交实例详解
2017/01/12 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
哪些情况下不应该使用索引
2015/07/20 面试题
一套带网友答案的.NET笔试题
2016/12/06 面试题
自主招生自荐信指南
2014/02/04 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
中国梦团日活动总结
2014/07/07 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
2014年创卫工作总结
2014/11/24 职场文书
2014年底工作总结
2014/12/15 职场文书
七年级英语教学反思
2016/02/15 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript