当前位置: 首页 > 面试题库 >

以秒为单位获取两个日期之间的时差

太叔小云
2023-03-14
问题内容

我试图在几秒钟之内得到两个日期之间的差异。逻辑将是这样的:

  • 设置一个初始日期,即现在;
  • 设置最终日期,该日期将是初始日期加上将来的秒数(例如,假设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秒,但我永远做不到。那我的逻辑怎么了?我可能会犯一些愚蠢的错误,因为已经很晚了,但是我无法正常工作使我感到困扰:)


问题答案:

编码

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;

甚至更简单,(endDate - startDate) / 1000如注释中指出的那样,除非您使用打字稿。

说明

您需要调用对象的getTime()方法Date,然后简单地将它们相减并除以1000(因为它最初以毫秒为单位)。另外,调用该getDate()方法时,实际上是将月份中的日期作为1到31之间的整数(不是从零开始),而不是从调用该getTime()方法获得的纪元时间,代表自_1970_ 年 1月1日00:00 以来的毫秒数 __

Rant

根据你的日期相关的操作,你可能想投资于集成库,如date.js或moment.js这使事情变得更轻松的开发,但是这只是一个个人喜好的问题。

例如,在moment.js中,我们将做的moment1.diff(moment2,"seconds")很漂亮。



 类似资料:
  • 问题内容: 大家好, 在我的项目中,我需要计算 两个日期之间以秒为单位 的 时差 : 例如 : 然后我应该得到 86400秒, 即24小时。 类似地 它应该返回 60秒 。 我读了很多问题,其中 2分钟字段*之间的区别是 11:50:01和12:10:57 *** 问题答案: $timeFirst = strtotime(‘2011-05-12 18:20:20’); $timeSecond =

  • 问题内容: 有没有一种方法可以在MySQL中进行查询,以秒为单位提供两个时间戳之间的差异,还是需要在PHP中进行?如果是这样,我将如何去做? 问题答案: 您可以使用和函数,如下所示: 您还可以使用其他答案中建议的@Amber函数: 如果您使用的是数据类型,我猜想解决方案会稍微快一点,因为值已经存储为整数,代表自纪元(Source)以来的秒数。引用文档: 在列上使用时,该函数直接返回内部时间戳记值,

  • 问题内容: 必须有一种更简单的方法来执行此操作。我有想要经常刷新的对象,因此我想记录它们的创建时间,对照当前时间戳进行检查,并根据需要刷新。 事实证明datetime.datetime很困难,我也不想深入ctime库。这样的事情有什么容易的吗? 问题答案: 如果要计算两个已知日期之间的差异,请使用以下方法: 86400.0 0

  • 当我想计算两个日期之间的天数跨度时,我在Java中对日期管理的理解有误。 假设我们有两个不同的日期: 日期1: 1986-01-24 日期2: 2017-04-20 案例1:我有一段使用日期的代码: 产出1: 案例2:使用日历的代码片段: 产出2: 案例3:在Excel中使用电子表格的示例: 当我使用MS Excel来获取这个跨度时,只是引入给定的日期并简单地进行细分,输出如下: 问题 为什么Ja

  • 我需要在几天内得到两次约会的差异。 到目前为止,我已经能够得到两个日期之间的区别,但不是在几天内: 有什么想法吗?

  • 问题内容: 我使用的API要求日期参数为秒数,即。 我的问题是,我目前将这段时间存储在其中,我想知道是否可以通过某种方法将变量转换为秒,以便可以将其放入API所需的参数中? 问题答案: 导入java.util.Date; …长秒=(new Date()。getTime())/ 1000; … 请参阅-http://docs.oracle.com/javase/6/docs/api/java/uti