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 原型学习总结
Oct 29 Javascript
jquery attr 设定src中含有&(宏)符号问题的解决方法
Jul 26 Javascript
javascript 基础篇2 数据类型,语句,函数
Mar 14 Javascript
jQuery操作checkbox选择(list/table)
Apr 07 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
Sep 20 Javascript
JavaScript实现多重继承的方法分析
Jan 09 Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
vue 封装 Adminlte3组件的实现
Mar 18 Javascript
js实现随机抽奖
Mar 19 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 Javascript
详解Vue数据驱动原理
Nov 17 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
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
Javascript 继承机制的实现
2009/08/12 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
JSON相关知识汇总
2015/07/03 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
flask session组件的使用示例
2018/12/25 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
为什么要有struct关键字
2012/05/08 面试题
.net C#面试题
2012/08/28 面试题
Ruby如何创建一个线程
2013/03/10 面试题
Delphi工程师笔试题
2013/09/21 面试题
车祸赔偿收入证明
2014/01/09 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
高中政治教学反思
2016/02/23 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB