计算 2 个日期之间经过的时间量

Calculating the amount of time passed between 2 dates

本文关键字:时间 经过 之间 日期 计算      更新时间:2023-09-26

我写了一些JavaScript来计算两个日期之间的差异,来自Twitter流,然后将其等同于一个特定的值 - 例如"秒前","x天前".....

在这里创建了一个小提琴来演示我所做的事情:http://jsfiddle.net/meAEe/3/

但是,结果始终等于"0 天前"。

谁能帮我弄清楚为什么?

您需要

在每个if语句之间else

现在,它将进入第一个匹配的每个if语句。如果时间小于一个小时,则也少于两个小时,少于一天,少于两天,不到一年。每个都将替换前一个,因此您只能看到最后一个。

代码中有逻辑错误。最后一个 if 语句将始终执行,因为您尚未使用 else if 连接 if 语句,一旦其中一个条件匹配,这将导致程序执行中断。

您的代码工作正常。如果你查看你的代码

                    var rightNow = new Date("Wed, 21 Dec 2011 13:05:09 +0000");
                var then = new Date("Tue, 20 Dec 2011 19:05:09 +0000");

差值小于 24 小时,给出 0 天。

我把

var then = new Date("Mon, 19 Dec 2011 19:05:09 +0000");

它给了 1 天前

你需要

if s转换为else if s(当然,第一个除外(。现在,他们每次都会被评估。

除了一些编程细节之外,您的问题在于使用Math.floor函数。

根据: http://www.w3schools.com/jsref/jsref_floor.asp

Math.floor 实际上返回最接近的整数,在本例中为 0,因为结果为 0.75。

那是因为你这样做了:Math.floor(diff / day);diff / day的结果是0.75 .如果你把它四舍五入,它0.如果更改日期,您将看到代码工作正常。