计算两个日期之间的差异会导致计算错误

时间:2014-11-25 19:33:31

标签: javascript

我似乎无法自己解决问题,

今天2014年11月25日的日期减去11/26/2014应该会计算出-1

今天2014年11月25日的日期减去2014年11月25日应计算为0

今天2014年11月25日的日期减去2014年11月24日的计算结果为1

以下功能似乎不对,我需要一双新鲜的眼睛。

var today = new Date()

var date1 = new Date("11/26/2014");

var diffDays = Math.ceil((today.getTime() - date1.getTime())/(1000*60*60*24));

alert(diffDays)

该功能显示结果0错误。

3 个答案:

答案 0 :(得分:1)

如果您只是想要差异,无论订单如何,您都需要Math.abs以确保您没有负数。

var diffDays = Math.ceil(Math.abs(today.getTime() - date1.getTime())/(1000*60*60*24));

答案 1 :(得分:1)

你需要math.round或math.abs:

var today = new Date()

var date1 = new Date("11/26/2014");

var diffDays = Math.round((today.getTime() - date1.getTime())/(1000*60*60*24));

alert(diffDays)

答案 2 :(得分:0)

日期差异将导致-0.42831302083333334,Math.ceil()会将其向上舍入为最接近的整数,这将导致0。