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 相关文章推荐
JQERY limittext 插件0.2版(长内容限制显示)
Aug 27 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
jquery实现简单实用的打分程序实例
Jul 23 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
AngularJS实现ajax请求的方法
Nov 22 Javascript
微信小程序实现根据字母选择城市功能
Aug 16 Javascript
JS随机数产生代码分享
Feb 24 Javascript
解决angular2 获取到的数据无法实时更新的问题
Aug 31 Javascript
jQuery each和js forEach用法比较
Feb 27 jQuery
python实现迭代法求方程组的根过程解析
Nov 25 Javascript
JS求解两数之和算法详解
Apr 28 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
Oct 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
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
php防止sql注入的方法详解
2017/02/20 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
Python单元测试简单示例
2018/07/03 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
python中实现控制小数点位数的方法
2019/01/24 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
详解Scrapy Redis入门实战
2020/11/18 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
美术教师岗位职责
2014/03/18 职场文书
2014年度个人工作总结
2014/11/07 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
黄埔军校观后感
2015/06/10 职场文书
公司处罚决定书
2015/06/24 职场文书
同学聚会感言一句话
2015/07/30 职场文书