我在做一个程序,它的主要部分是计算用户花在网站上的时间,然后将记录的时间保存在数据库中。
工作原理:在页面上,用户有一个开始记录时间的按钮,然后他被移动到另一个页面,在那里他可以节省时间。节省的时间被发送到php文件(通过ajax),然后php文件为当前用户将值放入数据库。
问题是,在记录60秒后,数据库中的时间表会从头开始(00:00:00)。例如:如果用户已经记录了30秒(00:00:30),那么他运行脚本,再记录40秒,然后在数据库中不记录00:01:10,而是将其分数清除(00:00:00)
详情如下。
mysql表-类型:time
//js公司
$("#stopTimer").click(function(event) {
var time = event.timeStamp;
$.ajax({
type: 'POST',
async: true,
url: 'timer.php',
data: {time: time}
});
});
//PHP
$time = ($_POST['time']/1000);
$stmt = $db->prepare("UPDATE members SET timeOnline = timeOnline + '$time' WHERE memberID = :memberID");
$stmt->execute(array(':memberID' => $memberID));
2条答案
按热度按时间ecbunoof1#
换一种方式试试。保留一个名为
start_time
. 当用户第一次按下此按钮时,将当前时间存储在该按钮上。当用户浏览不同的页面时,只需计算timeOnline
. 这也会更简单。c7rzv4ha2#
如果你想给
TIME
列使用+ INTERVAL x SECOND
: