怎样计算两个日期之间的天数?


情人节快来了,我想做一个应用,让用户选择两个日期,就能算出这两个日期之间的总天数,另外如果两个日期的时间间隔很长,我还想要更复杂一点的格式,比如结果是“2年4个月5天”这样,谁能给出一个高效的实现方法?要考虑闰年,天数一定要精准

示例:
用户选择了2012-01-01 跟2012-02-14 则结果是:
你们相识了45天,1个月14天

java php JavaScript

暂时没想到 12 years, 5 months ago

我提供一个js的方法:

   
  Date.prototype.dateDiff = function (date, flag)
  
{
var msCount;
var diff = this.getTime() - date.getTime();
switch (flag)
{
case "ms":
msCount = 1;
break;
case "s":
msCount = 1000;
break;
case "m":
msCount = 60 * 1000;
break;
case "h":
msCount = 60 * 60 * 1000;
break;
case "d":
msCount = 24 * 60 * 60 * 1000;
break;
}
return Math.floor(diff / msCount);
};

测试:

   
  <script type="text/javascript">
  
  var d1 = new Date().convertDate("2011-04-08");
  var d2 = new Date().convertDate("2011-04-07");
  document.writeln(d1.dateDiff(d2, 'd'));
</script>

Somaid answered 12 years, 5 months ago

Your Answer