我有一个可以自行运行的秒表代码。我试图在用户打孔后启动并显示它,以便计算工作时间并在用户打卡时停止工作。我想使用该数据然后插入数据库。我该怎么做呢?
<?php if($timedata['is_clocked_in'] === 'Yes'):?>
<h5 style="text-transform: uppercase" class="alert alert-info col-md-4">You Are Clocked In : (time count) </h5>
<?php elseif($timedata['is_clocked_in'] === 'No'):?>
<button><i class="fa fa-plus" aria-hidden="true"></i> Punch In Now</button>
<?php endif;?>
标记
<h1><time>00:00:00</time></h1>
<button id="start">start</button>
<button id="stop">stop</button>
<button id="clear">clear</button>
脚本
var h1 = document.getElementsByTagName('h1')[0],
start = document.getElementById('start'),
stop = document.getElementById('stop'),
clear = document.getElementById('clear'),
seconds = 0, minutes = 0, hours = 0,
t;
function add() {
seconds++;
if (seconds >= 60) {
seconds = 0;
minutes++;
if (minutes >= 60) {
minutes = 0;
hours++;
}
}
h1.textContent = (hours ? (hours > 9 ? hours : "0" + hours) : "00") + ":" + (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00") + ":" + (seconds > 9 ? seconds : "0" + seconds);
timer();
}
function timer() {
t = setTimeout(add, 1000);
}
timer();
/* Start button */
start.onclick = timer;
/* Stop button */
stop.onclick = function() {
clearTimeout(t);
}
/* Clear button */
clear.onclick = function() {
h1.textContent = "00:00:00";
seconds = 0; minutes = 0; hours = 0;
}
答案 0 :(得分:-1)
请勿使用Javascript的setTimeout()函数计算秒数。
我可以想到很多原因,但有两个重要的原因是:
您可以访问PHP,PHP可以访问服务器的时钟。用那个。见:
http://nl1.php.net/manual/en/function.time.php
如果必须使用Javascript,则使用日期对象;
https://www.w3schools.com/jsref/jsref_obj_date.asp
您可以通过在开始时存储时间来获得秒数,然后从停止时间中减去它。
timePassed = stopTime - startTime
答案 1 :(得分:-1)
你可以通过ajax实现它。
刚开始发送请求并在成功状态下调用stop方法。