我试图创建一个简单的时间/薪水跟踪器。 用户输入他们开始工作的时间,然后计数器计算自进入以来的小时数和分钟数以及当时的金额 它还应该每1秒更新一次时间和工资(setInterval(function,1000)) 我一直试图让它正确,但似乎无法让Date()像我想要的那样工作,会欣赏正确方向的推动 感谢
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<input id="input" type="time">
<button onclick="live()">run</button>
<!---->
<p id="output">Output</p>
<script>
function live() {
var seconds = 60;
var minutes = seconds * 60;
var hours = minutes * 60;
var rate = 75;
var input = document.getElementById('input');
var output = document.getElementById('output');
var now = new Date();
var clock_in = input.value;
var elapsed = now.toString();
output.innerHTML = now.getHours() + " " + now.getMinutes() + " " + now.getSeconds() + " " + now.getMilliseconds();
}
</script>
</body>
</html>
答案 0 :(得分:1)
我修改了您的代码以接受日期,您可以找到演示working here
基本上问题是您需要有一个有效的日期对象
在没有输入的情况下解释基本代码就像这样工作
// Init Time - valid Object time
var initTime = new Date(2017, 06, 5) // today Date, month start with 0
// time now
var now = new Date()
// diference in millisecond
var diference = now - initTime;
// rate scale
var rate = 75;
var scale = 75/3600000 // millisecond in a hour
// money
var money = scale * diference;