javascript - 计算两个日期时间之间的时间

标签 javascript html datetime

我正在尝试计算两个日期之间的时间以及获取旅行时间的时间 天和小时(四舍五入)。

我使用 Bootstrap (包括日期选择器)的 4 个输入,格式为 dd:mm:yyhh:mm

标记:

<input type="date" name="travel_begin_date" id="travel_begin_date" placeholder="Text input" class="span12">
<input type="time" name="travel_begin_time" id="travel_begin_time" placeholder="Text input" class="span12">
<input type="date" id="travel_end_date" name="travel_end_date" placeholder="Text input" class="span12">
<input type="time" for="travel_end_time" name="travel_end_time" placeholder="Text input" class="span12">

<div id="days_difference"></div>
<div id="hours_difference"></div> 

功能:

function calculateDifference() {
console.log('calculate difference start...');
var startDate = $("#travel_begin_date").val();
var startTime = $("#travel_begin_time").val();
var endDate = $("#travel_end_date").val();
var endTime = $("#travel_end_time").val();

var stDate = new Date(startDate);
var enDate = new Date(endDate);

var diff=enDate.getTime() - stDate.getTime();
var differenceDays = (diff) / (1000 * 60 * 60 * 24);
var differenceHours= ((diff) % (1000 * 60 * 60 * 24))/ (1000 * 60 * 60); 

document.getElementById('days_difference').innerHTML += differenceDays  + " days and";
document.getElementById('hours_difference').innerHTML += differenceHours  + " hours";

 }

现在的问题是:如何计算hours_difference。

例如:

差异日期:20.03.2013 时间:2013年3月22日 10:00 时间:11:45=结果2天2小时(四舍五入)?

有没有简单的代码或者插件?

最佳答案

根据评论更新了答案并添加了 DEMO

<input type="time" id="travel_end_time" name="travel_end_time" placeholder="Text input" class="span12">

您只为 travel_end_time 更改了 for 而不是 id

function calculateDifference() {
    console.log('calculate difference start...');
    var startDate = $("#travel_begin_date").val();
    var startTime =(''+ $("#travel_begin_time").val()).split(":"); // Used split 

    var endDate = $("#travel_end_date").val();
    var endTime = (''+ $("#travel_end_time").val()).split(":");// Used split 

    var stDate = new Date(startDate);
    stDate.setHours(parseInt(startTime[0]));// Set Hours 
    stDate.setMinutes(parseInt(startTime[1]));// Set Minutes 
    var enDate = new Date(endDate);
    enDate.setHours(parseInt(endTime[0]));// Set Hours 
    enDate.setMinutes(parseInt(endTime[1]));// Set Minutes


    var diff=enDate.getTime() - stDate.getTime();
    var differenceDays = (diff) / (1000 * 60 * 60 * 24);
    var differenceHours= ((diff) % (1000 * 60 * 60 * 24))/ (1000 * 60 * 60); 

    document.getElementById('days_difference').innerHTML += Math.round(differenceDays)   + " days and";
    document.getElementById('hours_difference').innerHTML += Math.round(differenceHours ) + " hours";

 }

关于javascript - 计算两个日期时间之间的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768134/

相关文章:

javascript - 如何使用 Moment JS 获取时间

javascript - 谷歌地图路点不使用方向服务删除

javascript - 在单页中渲染多个图像

javascript - getElementsByTagName ("div").length 对任何网页返回零

html - 为什么边框: 5px dashed not come out as dashed in Firefox?

javascript - 无法通过 JavaScript 更改 <DIV> 的 css 可见性

html - Ruby on Rails 样式表

javascript - socket.io 事件和自定义事件

javascript - 如何显示输入类型 ="datetime-local"的值?

php - 在 PHP 中找出 2 个日期是否在同一个月的最佳方法是什么?