Javascript计算日期差

今天别人说起某人跟某人相识了多少天,一下子就想到了日期差,用javasript实现起来就非常容易了。

解决问题的方法很简单:假设给定一个日期,我们可以通过getTime()方法获取到毫秒数(该日期距离1970年1月1日之间的毫秒数),然后我们再获取当前时间的毫秒数(同上)。两者相减得到的毫秒数除以1000得到秒数再除以60得到分钟数再除以60得到小时数,最后除以24即可得到两个日期相差的天数。

知道方法后,js代码写起来也就很简单了。

?View Code JAVASCRIPT
function GetDateDiff(oldDate) {  
	var oDate = oldDate;
	oDate = new Date(oDate.replace(/-/g, "/"));
	var nDate = new Date();
	var diff = nDate.getTime() - oDate.getTime();
	var result = Math.floor(diff / (1000 * 60 * 60 * 24));
	return result;
}

因为我们习惯于将日期写为 2008-09-20 类似这样的格式,但为了便于带入new Date()并使用getTime()方法,我们必须转换成 2008/09/20 这样的格式,所以此处使用了正则表达式来替换。

最近发现jsfiddle打不开了,遂换至codepen演示:

function getDateDiff(oldDate) {
  var oDate = oldDate;
  oDate = new Date(oDate.replace(/-/g, "/"));
  var nDate = new Date();
  var diff = nDate.getTime() - oDate.getTime();
  var result = Math.floor(diff / (1000 * 60 * 60 * 24));
  return result;
}
document.write("We have known for " + getDateDiff("2008-09-20") + " days");

See the Pen XJJNLw by yunxiao wang (@cxyn) on CodePen.