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下将选择的checkbox的id组成字符串的方法
Nov 28 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 Javascript
JavaScript获取各大浏览器信息图示
Nov 20 Javascript
JavaScript学习笔记之数组去重
Mar 23 Javascript
JavaScript数据推送Comet技术详解
Apr 07 Javascript
JavaScript中立即执行函数实例详解
Nov 04 Javascript
php中and 和 &&出坑指南
Jul 13 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
Aug 13 Javascript
原生js实现随机点餐效果
Dec 10 Javascript
vue使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
vue中 this.$set的使用详解
Nov 17 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
PHP消息队列用法实例分析
2016/02/12 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
总结一些js自定义的函数
2006/08/05 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
JS实现页面打印功能
2017/03/16 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
结束运行python的方法
2020/06/16 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
小学运动会入场式解说词
2014/02/18 职场文书
人事部岗位职责范本
2014/03/05 职场文书
函授生自我鉴定
2014/03/25 职场文书
军训口号
2014/06/13 职场文书
经济类毕业生求职信
2014/06/26 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
护士先进个人总结
2015/02/13 职场文书
公司宣传语大全
2015/07/13 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书