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 键盘keyCode键码值表
Dec 24 Javascript
javascript格式化json显示实例分析
Apr 21 Javascript
JavaScript获取数组最小值和最大值的方法
Jun 09 Javascript
基于jquery实现瀑布流布局
Jun 28 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
Sep 09 Javascript
js HTML5上传示例代码完整版
Oct 10 Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 Javascript
原生JS实现图片左右轮播
Dec 30 Javascript
EsLint入门学习教程
Feb 17 Javascript
关于预加载InstantClick的问题解决方法
Sep 12 Javascript
Vue自定义属性实例分析
Feb 23 Javascript
JS基础之逻辑结构与循环操作示例
Jan 19 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
自动跳转中英文页面
2006/10/09 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php常用hash加密函数
2014/11/22 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
浅谈Angular路由守卫
2017/08/26 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
Python断言assert的用法代码解析
2018/02/03 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
python随机数分布random均匀分布实例
2019/11/27 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
启动一个线程是用run()还是start()
2016/12/25 面试题
写好自荐信需做到的5要点
2014/03/07 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
单身证明格式样本
2015/06/15 职场文书
总结会主持词
2015/07/02 职场文书
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android