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

Calculating differences between two dates results in a wrong calculation

本文关键字:计算 错误 之间 两个 日期      更新时间:2023-09-26

我自己似乎无法弄清楚一些事情,

今天的日期 11/25/2014

减去 11/26/2014 应计算为 -1

今天的日期 11/25/2014

减去 11/25/2014 应计算为 0

今天的日期 11/25/2014

减去 11/24/2014 应计算为 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,这是错误的。

你需要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)

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

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

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