【发布时间】:2012-12-03 09:30:31
【问题描述】:
我试图在几秒钟内得到两个日期之间的差异。逻辑是这样的:
- 设置一个初始日期,即现在;
- 设置一个最终日期,它是初始日期加上未来的一些秒数(例如 15 秒)
- 获取这两者之间的差异(秒数)
我之所以用日期来做是因为最终日期/时间取决于其他一些变量,而且它永远不会相同(这取决于用户做某事的速度),而且我还存储了初始日期其他的东西。
我一直在尝试这样的事情:
var _initial = new Date(),
_initial = _initial.setDate(_initial.getDate()),
_final = new Date(_initial);
_final = _final.setDate(_final.getDate() + 15 / 1000 * 60);
var dif = Math.round((_final - _initial) / (1000 * 60));
问题是我从来没有得到正确的区别。我尝试除以24 * 60,这会让我只剩下几秒钟,但我从来没有做对。那么我的逻辑有什么问题?我可能会犯一些愚蠢的错误,因为已经很晚了,但是我无法让它工作让我很困扰:)
【问题讨论】:
-
操作顺序是关键。
-
所以你想要一个时间戳,加上 15 秒,然后看看相差多少秒。我会说差异很大的可能性是......等待它...... 15秒?
-
我真的明白你想要做什么(我认为),但如果你使用 new Date(),这是现在的 unix 时间,添加 15 秒,然后立即检查差异,差异将是 15 秒(减去计算所需的毫秒数),但我猜你的意图是在未来以某种方式进行比较。
-
我真的不明白,为了证明我的观点,这是一个适用于上述示例的FIDDLE。如果你想弄清楚用户做某事花了多长时间,你通常会得到用户开始操作时的时间戳,以及用户完成操作时的时间戳,然后比较它们,你就知道花了多长时间. 15 秒到底是什么鬼?
标签: javascript date