javascript计算两个日期之间的时间差代码实例

快乐打工仔 分类:实例代码

本章节分享一段代码实例,它实现了获取两个日期之间时间差的功能。

时间差的单位比较灵活,可以是秒、小时、天、或者月等等。

代码实例如下:

Date.prototype.Diff=function(interval,objDate){ 
  if (arguments.length<2||objDate.constructor!=Date){ 
    return undefined; 
  } 
  switch (interval) { 
   case 's': return parseInt((objDate - this) / 1000); 
   case 'n': return parseInt((objDate - this) / 60000); 
   case 'h': return parseInt((objDate - this) / 3600000); 
   case 'd': return parseInt((objDate - this) / 86400000); 
   case 'w': return parseInt((objDate - this) / (86400000 * 7)); 
   case 'm': return (objDate.getMonth() + 1) + ((objDate.getFullYear() - this.getFullYear()) * 12) - (this.getMonth() + 1); 
   case 'y': return objDate.getFullYear() - this.getFullYear(); 
   default: return undefined; 
  } 
}; 
var nDate=new Date();
var objDate=new Date("2015/10/3");
console.log(nDate.Diff("d",objDate));

上面的代码实现了我们的要求,下面介绍一下它的实现过程。

一.代码注释:

(1).function(interval, objDate){},此方法可以实现计算功能,第一个参数规定时间差的单位,第二个参数是一个时间对象。

(2).if (arguments.length<2||objDate.constructor!=Date){

  return undefined;

} ,如果方法传递的参数少于两个或者第二个参数并非是Date对象,那么就返回undefined。

(3).switch (interval) {},switch流程控制语句。

(4).case 's': return parseInt((objDate - this) / 1000),如果要获取两个时间相差多少秒,那么就使用时间对象相减,然后再除以1000.两个时间对象进行减运算,会隐式的调用valueOf()方法,也就是会获取时间对象的时间戳,然后再除以1000就是相差的秒数。(5).case 'n': return parseInt((objDate - this) / 60000),如果要获取两个时间相差多少分钟,那么就要除以60000,一分钟有60秒,一秒是1000毫秒,所以60000=60*1000.

二.相关阅读:

(1).arguments可以参阅arguments可以参阅javascript arguments一章节。 

(2).parseInt()可以参阅javascript parseInt()一章节。

(3).Date对象相关操作可以参阅JavaScript Date对象一章节。

回复

我来回复
  • 暂无回复内容