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 相关文章推荐
JavaScript Event学习补遗 addEventSimple
Feb 11 Javascript
jquery动态改变form属性提交表单
Jun 03 Javascript
jquery.validate.js插件使用经验记录
Jul 02 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
angularjs中的e2e测试实例
Dec 06 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
Nov 07 Javascript
JS实现焦点图轮播效果的方法详解
Dec 19 Javascript
bootstrap-table组合表头的实现方法
Sep 07 Javascript
Node.js 使用axios读写influxDB的方法示例
Oct 26 Javascript
Javascript组合继承方法代码实例解析
Apr 02 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
Vue实现返回顶部按钮实例代码
Oct 21 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
学习jquery之一
2007/04/27 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
node.js中的events.emitter.removeListener方法使用说明
2014/12/10 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
PyQt5实现简易电子词典
2019/06/25 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
党委书记岗位职责
2013/11/24 职场文书
结婚邀请函范文
2014/01/14 职场文书
初一家长会邀请函
2014/01/31 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
运动会通讯稿600字
2015/07/20 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
Spring实现内置监听器
2021/07/09 Java/Android