我正在寻找一种方法来做两个javascript日期对象之间的适当减法并获得日增量。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>
什么将是这更好的方法呢?
感谢您的修复,但这似乎失败: getDayDelta(2009,8,19); //返回1,但返回0(在我的本地时间是18) – Hellnar 2009-08-18 18:05:12
是的,那是因为'today'包含时间,请参阅我的编辑... – CMS 2009-08-18 18:50:01
@Crib:问题在于'incomingDate'的时间部分是0小时,0分钟,0秒和0毫秒。你必须对“今天”做同样的事情,否则你将会在一天之前/之后得到部分日子。我编辑了答案以反映这一变化。 – 2009-08-18 18:51:02