Javascript日期对象的dateAdd与dateDiff方法

原文传送门:http://blog.csdn.net/cuixiping/archive/2008/11/17/3322069.aspx

 

先贴出我写的javascript代码,后面有使用参考。

//by cuixiping, 2008-11-17
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

    必选项。字符串表达式,表示用于计算 date1date2 之间的时间间隔。有关数值,请参阅“设置”部分。

dateObj, dateObj2

    必选项。日期对象。用于计算的两个日期对象。

设置

interval 参数可以有以下值:

设置 描述
y
q 季度
m
d
w
h 小时
n 分钟
s
ms 毫秒

你可能感兴趣的:(JavaScript,Date,function,360)