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 document.compatMode兼容性
Feb 23 Javascript
JS判断客服QQ号在线还是离线状态的方法
Jan 13 Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 Javascript
javascript基本数据类型和转换
Mar 17 Javascript
关于Vue实现组件信息的缓存问题
Aug 23 Javascript
JavaScript实现数值自动增加动画
Dec 28 Javascript
微信小程序button组件使用详解
Jan 31 Javascript
vue-star评星组件开发实例
Mar 01 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
Jun 19 Javascript
微信小程序实现下拉刷新动画
Jun 21 Javascript
Vue如何实现组件间通信
May 15 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
PHP学习笔记之数组篇
2011/06/28 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
ajax 文件上传应用简单实现
2009/03/03 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
Python 中导入csv数据的三种方法
2018/11/01 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
浅谈python锁与死锁问题
2020/08/14 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
SQL中where和having的区别
2012/06/17 面试题
幼儿园家长寄语
2014/04/02 职场文书
超市客服工作职责
2014/06/11 职场文书
经济国贸专业求职信
2014/06/18 职场文书
法人授权委托书样本
2014/09/19 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
Python学习之时间包使用教程详解
2022/03/21 Python
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers