我正在尝试计算两个日期之间的时间以及获取旅行时间的时间 天和小时(四舍五入)。
我使用 Bootstrap (包括日期选择器)的 4 个输入,格式为 dd:mm:yy
和 hh: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/