我想让用户输入条目和退出时间,然后根据小时数计算费用。我认为将时间转换为分钟然后计算差异。谁能教我怎么做?
答案 0 :(得分:2)
首先必须解析日期,例如在新Date的构造函数中:
var first = new Date(yourDateAsAString)
var second = new Date(yourOtherDateAsAString)
然后您可以按如下方式计算天数差异:
var difference = second.getTime() - first.getTime()
这些是毫秒。做/ 1000秒,然后/ 60分钟,然后/ 60小时,然后/ 24小时的最终差异。
答案 1 :(得分:1)
试试这个:
var timestampEntry = new Date(entry_time).getTime();
var timestampExit = new Date(exit_time).getTime();
var delta = timestampExit - timestampEntry;
console.log(delta / 1000 / 60 / 60);
答案 2 :(得分:1)
HTML:
<input id="date1" type="text">
<input id="date2" type="text">
<button id="calculate">calculate!</button>
<span id="result"></span>
的javascript:
function calculate() {
var input1 = document.getElementById('date1').value;
var input2 = document.getElementById('date2').value;
var date1 = new Date(input1);
var date2 = new Date(input2);
var result = (date2 - date1) / 1000 / 60 / 60;
document.getElementById('result').innerHTML = result;
}
document.getElementById('calculate').onclick = calculate;
jsfiddle:http://jsfiddle.net/3Z9dM/
请注意,您需要一个完整的日期,您必须知道一天。
使用Date()的构造函数解析日期在所有浏览器中的工作方式也不完全相同。注意来自一个大洞穴的巨魔。
答案 3 :(得分:1)
基于24小时制:
时间= hh:mm
前:07:34,23:22
function calculateHours(start, end) {
var
startHours = parseInt(start.slice(0,2),10),
startMin = parseInt(start.slice(2), 10),
stopHours = parseInt(stop.slice(0,2), 10),
stopMin = parseInt(stop.slice(2), 10),
total
;
total = ((stopHours * 60 + stopMin) - (startHours * 60 + startMin)) / 60;
return total;
}
肯定有更好的方法可以做这样的事情,但这是你要求的功能。
答案 4 :(得分:1)
虽然这可以在纯JavaScript中完成,但如果您正在处理和操作大量日期时间,您可能需要查看moment.js。它使得时间和时区的工作变得更好。
答案 5 :(得分:1)
你可以做一些这样的事情,我还没有完成表单验证
以下是plunkr链接:http://plnkr.co/edit/8wVC1yZeGCmrY0rSXMzL?p=preview
答案 6 :(得分:1)
自1970年1月1日午夜起,JS以日期为单位存储日期 因此,计算两个日期之间的时间就像减去它们一样简单。
在两个不同的时间创建一个Date()对象。
var time1 = new Date(); var time2 = new Date();
var difference = time2-time1;
var inHours =差异/(1000 * 60 * 60);