我试图在几秒钟之内得到两个日期之间的差异。逻辑将是这样的:
之所以使用日期来做,是因为最终日期/时间取决于其他一些变量,并且永远不一样(取决于用户执行操作的速度),并且我还存储其他日期的初始日期。
我一直在尝试这样的事情:
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秒,但我永远做不到。那我的逻辑怎么了?我可能会犯一些愚蠢的错误,因为已经很晚了,但是我无法正常工作使我感到困扰:)
24 * 60
var startDate = new Date(); // Do your operations var endDate = new Date(); var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
甚至更简单,(endDate - startDate) / 1000如注释中指出的那样,除非您使用打字稿。
(endDate - startDate) / 1000
您需要调用对象的getTime()方法Date,然后简单地将它们相减并除以1000(因为它最初以毫秒为单位)。另外,调用该getDate()方法时,实际上是将月份中的日期作为1到31之间的整数(不是从零开始),而不是从调用该getTime()方法获得的纪元时间,代表自_1970_ 年 1月1日00:00 以来的毫秒数 __
getTime()
Date
getDate()
根据你的日期相关的操作,你可能想投资于集成库,如date.js或moment.js这使事情变得更轻松的开发,但是这只是一个个人喜好的问题。
例如,在moment.js中,我们将做的moment1.diff(moment2,"seconds")很漂亮。
moment1.diff(moment2,"seconds")