js版的dateAdd与dateDiff
来源:互联网 发布:百度算法之轮流展现法 编辑:程序博客网 时间:2024/05/21 11:24
转自:http://www.cnblogs.com/cuixiping/archive/2008/11/16/1334510.html
先贴出我写的javascript代码,后面有使用参考。
/* 得到日期年月日等加数字后的日期 */
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];
}
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 参数可以有以下值:
0 0
- js版的dateAdd与dateDiff
- js版的dateAdd与dateDiff
- dateadd与datediff的用法
- dateAdd与dateDiff的用法:
- js操作日期(函数,js版的dateAdd与dateDiff)
- js操作日期(函数,js版的dateAdd与dateDiff,四舍五入(round()方法)并保留小数点后N位的函数)
- js操作日期(函数,js版的dateAdd与dateDiff,四舍五入(round()方法)并保留小数点后N位的函数)
- js操作日期(函数,js版的dateAdd与dateDiff,四舍五入(round()方法)并保留小数点后N位的函数)
- Javascript日期对象的dateAdd与dateDiff方法
- Javascript日期对象的dateAdd与dateDiff方法
- Javascript日期对象的dateAdd与dateDiff方法
- Javascript日期对象的dateAdd与dateDiff方法
- SQL中DATEADD和DATEDIFF的用法
- SQL中DATEADD和DATEDIFF的用法
- 模拟SQLSERVER的两个函数:dateadd(),datediff()
- SQL中DATEADD和DATEDIFF的用法
- SQL中DATEADD和DATEDIFF的用法
- DateAdd,DateDiff日期函数的用法
- 第5天 妹子持续干扰中
- 算法——基础篇——快速排序
- VS CHtmlDialog 对话框与普通对话框的区别
- 九度 题目1523:从上往下打印二叉树
- 重装mysql失败的解决方法
- js版的dateAdd与dateDiff
- iOS开发清除缓存
- android 获取 内外存储设备路径疑问
- T-SQL常用的字符串函数
- Android ComponentName的用法
- MFC 框架 CHtmlDialog中 javaSript 的调用
- Android4.2的多用户管理中关于SD卡的实现改动
- C语言中的算数转换和整形提升
- 我是如何克服拖延症的