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 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
ext 列表页面关于多行查询的办法
Mar 25 Javascript
js获取url参数代码实例分享(JS操作URL)
Dec 13 Javascript
jquery选择器需要注意的问题
Nov 26 Javascript
js中substring和substr两者区别和使用方法
Nov 09 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 Javascript
利用 spin.js 生成等待效果(js 等待效果)
Jun 25 Javascript
解决vue router使用 history 模式刷新后404问题
Jul 19 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
Jun 22 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
Sep 25 Javascript
JS中验证整数和小数的正则表达式
Oct 08 Javascript
浅析vue插槽和作用域插槽的理解
Apr 22 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
PHP HTML代码串 截取实现代码
2009/06/29 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
简单的Vue异步组件实例Demo
2017/12/27 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
python利用sklearn包编写决策树源代码
2017/12/21 Python
Python urllib3软件包的使用说明
2020/11/18 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
《果园机器人》教学反思
2014/04/13 职场文书
个人合作协议书范本
2014/04/18 职场文书
体现团队精神的口号
2014/06/06 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
优秀团员自我评价
2015/03/10 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
Python一行代码实现自动发邮件功能
2021/05/30 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript