javascript - javascript中的日期差异天数?

标签 javascript date

我知道如何使用 javascript,但对它没有深入的了解。我知道如何在 PHP 中获取日期差异,但在这种情况下,我需要 javascript 解决方案。老实说,我什至不知道是否可以用 Javascript 来做到这一点。我猜是这样,但这只是一个猜测。

这是我的 html:

<div class="span3" id="checkin">
    <span class="text-label"><i class="icon-calendar"></i>Check In</span> 
    <input type="text" name="checkin" value="02/08/2014">
</div>

<div class="span3" id="checkout">
    <span class="text-label"><i class="icon-calendar"></i>Check Out</span>
    <input type="text" name="checkout" value="04/08/2014">
</div>

这两个字段实际上是引导日期选择器。它们总是带有一些默认值。现在,我希望当用户更改这两个值时计算两个日期之间的差异(警报或控制台日志即可,我将从那里找到方法)。

问题是我不知道从哪里开始以及如何进行计算。我再次猜测 onchange 事件可能是一个不错的候选者,但是......我不知道如何计算差异。

任何帮助将不胜感激。

问候,约翰

最佳答案

您可以首先解析字符串并创建一个 JavaScript 日期,如下所示:

var start = $("input[name=checkin]").val().split("/");
var end = $("input[name=checkout]").val().split("/");

var startDate = new Date(start[2], start[1]-1, start[0]);
var endDate = new Date(end[2], end[1]-1, end[0]);

然后您可以简单地相互减去日期:

endDate - startDate

该减法将为您提供以毫秒为单位的时间差。要将其转换为天数,只需将其除以一天中的毫秒数 (1000 * 60 * 60 * 24)。

现在您的差异只有几天。有关示例,请参阅JSFiddle .

关于javascript - javascript中的日期差异天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075300/

相关文章:

javascript - 在捕获被拒绝的 Promise 时对 Meteor.users 集合执行更新操作(使用 fcm-push+Meteor)

javascript - jquery select2 标签获取默认值

javascript - 在 Chrome 中触发 Google 阅读器的刷新(在 Firefox 中有效)?

javascript - 如何在时间戳中转换输入类型 ="date"?

java - 从具有日期条件的数据库中选择值

mysql - 如果行的时间是 5 分钟或比现在更长,则更新 SQL

java - 考虑到新引入的闰秒,一个 1 岁的(java)库如何正确执行 UTC 时间格式

javascript - 使用 addEventListener onSubmit 表单

php - 添加日期变量

javascript - 使用 onblur 和 setTimeout 关闭子菜单