我希望找到一种方法,在两个JavaScript日期对象之间进行正确的减法,并获得天数差。
这是我的方法,但对于今天的日期输入会失败:
<script type="text/javascript">
function getDayDelta(incomingYear,incomingMonth,incomingDay){
var incomingDate = new Date(incomingYear,incomingMonth,incomingDay);
var today = new Date();
var delta = incomingDate - today;
var resultDate = new Date(delta);
return resultDate.getDate();
}
//works for the future dates:
alert(getDayDelta(2009,9,10));
alert(getDayDelta(2009,8,19));
//fails for the today as input, as expected 0 delta,instead gives 31:
alert(getDayDelta(2009,8,18));
</script>
这个问题有更好的解决方法吗?
incomingDate
的时间部分为0小时,0分钟,0秒和0毫秒。您必须对“today”执行相同的操作,否则您将获得前/后一天的部分天数。我已编辑答案以反映更改。 - Grant Wagner