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

如何获取JavaScript中两个日期之间的区别?

葛炯
2023-03-14
问题内容

我正在创建一个应用程序,可让您定义带有时间范围的事件。我想在用户选择或更改开始日期时自动填写结束日期。但是,我不太清楚如何获得两次之间的差异,然后如何使用该差异创建新的结束日期。


问题答案:

在JavaScript中,可以通过调用getTime()方法 仅在数字表达式中使用日期将日期转换为自epoc以来的毫秒数。

因此,要获得差异,只需减去两个日期。

要基于差异创建新日期,只需在构造函数中传递毫秒数即可。

var oldBegin = ...
var oldEnd = ...
var newBegin = ...

var newEnd = new Date(newBegin + oldEnd - oldBegin);

这应该工作

编辑 :修正了@bdukes指出的错误

编辑

对于行为的解释,oldBeginoldEnd,和newBeginDate实例。调用运营商+-触发的Javascript汽车铸件,并会自动调用valueOf()这些对象的原型方法。碰巧该valueOf()方法在Date对象中实现为对的调用getTime()

所以基本上: date.getTime() === date.valueOf() === (0 + date) === (+date)



 类似资料:
  • 问题内容: 如何获取JavaScript中两个日期之间的天数?例如,在输入框中指定两个日期: 问题答案: 这是快速的实现,作为解决问题中提出的问题的概念证明。它依赖于这样一个事实,您可以通过减去两个日期来获得两个日期之间经过的毫秒数,这会将它们强制为原始数字值(自1970年初以来的毫秒数)。 您应该注意,“常规”日期API(名称中没有“ UTC”)在用户浏览器的本地时区中运行,因此,如果您的用户所

  • 问题内容: 我有两个这样的表: 表格1 表2 我想从 Table1中 选择并插入 Table2中 。 例如: 在表1中,我有这个 在表2中,我想要这个 带有样本数据的表结构 问题答案: 感谢您的架构。它使处理您的问题变得容易。我对您的架构进行了一些更改以利用auto_increment 在这里,我在emp_leave_daywise表上添加了唯一约束,因为id整数上的主键不能确保记录不重复。 em

  • 问题内容: 在MySql数据库中有表 我的问题是,我要传递开始日期和结束日期,然后我将获得列日期,例如: 那么我将获得101,102,103 UserId的值。但是我出错了 问题答案: 这可能会更好: 也可能是保留字,对此不太确定。如果是这种情况,则您需要在其周围加反引号(前后应有一个`)

  • 问题内容: 在我的应用程序中,用户应从选择日期。问题是生成此列​​表。例如,我需要 2010年至2013年 或 6月至8月 之间的所有日期(期间可能是 day , month , year )。是否有任何方法可以获取该数据? 范例:我需要 2013年1月1* 日 至2013年1月1 日之间的日期 * 2013年1月1日 2013年2月1日 2013年3月1日 2013年4月1日 2013年5月1日

  • 问题内容: 如果我有两个日期,我该如何使用JavaScript以分钟为单位获取两个日期之间的差额? 问题答案: 您可以签出以下代码: 或舍弃秒,如果您不想舍入分钟。

  • 问题内容: 我知道我可以使用momentjs做任何事情,还可以做一些涉及日期的事情。但是令人尴尬的是,我很难去做一件看起来很简单的事情:得到两次之间的差。 例: 我试过的 我不知道那里的“ 10”是什么。我住在巴西,所以如果相关的话,我们是utc-0300。 结果是持续时间正确的内部值: 所以,我想我的问题是:如何将momentjs持续时间转换为时间间隔?我肯定可以用 但我觉得有一些更 优雅 ,我