gpt4 book ai didi

php - 添加数据库结果的时间部分?

转载 作者:行者123 更新时间:2023-11-29 18:12:55 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中添加一项功能,该功能可以按周、月等计算用户在系统中花费的时间总计。

$select = "SELECT TOTAL_HRS FROM timeclock WHERE USERNAME = '$sessuser' AND CLOCK_OUT BETWEEN '$dbpast' AND '$dbnow'";

我有两个采样时间条目的 MySql 结果:00:00hr:04min:08s00:00hr:12min:52s。用户可以拥有更多。

TOTAL_HRS 是一个 varchar 列,因此当我在其上放置 sum() 时,它会返回 0。

这是我到目前为止所拥有的:

while($row = $query->fetch_assoc()){

print_r($row);
$sanitized = preg_replace("/[^0-9:]+/", "", $row);
print_r($sanitized);
$joinarr = implode(':', $sanitized);
$parts = explode(':', $joinarr);
print_r($parts);

$zerodate = new DateTime('0000-01-01 00:00:00');
$addhrs += $parts[1];
$addmin += $parts[2];

print_r($addhrs);

$interval = $zerodate->add(new DateInterval('P' .$parts[0].'DT'.$parts[1].'H'.$parts[2].'M'.$parts[3].'S'));

$totalhrs = $interval->format('%D:%Hhr:%Imin:%Ss');
print_r($totalhrs);

}

我得到了时髦的垃圾作为返回:0%Sat:%0012Sat, 01 Jan 0000 00:12:52 +0100:%001121:%st52

我需要返回的是:类似:00:00hr:17min:00s。我不打算存储它,只是希望它显示在页面上。

我需要一些帮助来解决这个问题。我确信有更好的方法。我不太擅长函数。或者我应该通过 jquery 发送结果并在那里处理它们?哪一方处理 DateTime 的效率更高?非常感谢您的帮助。谢谢!

最佳答案

您可以使用TIMESTAMPDIFF()计算两个日期时间值之间的秒数,然后将其相加。例如

SELECT SUM(TIMESTAMPDIFF(SECOND,CLOCK_IN,CLOCK_OUT)) AS TOTAL_SECS
FROM timeclock
WHERE USERNAME = '$sessuser' AND CLOCK_OUT BETWEEN '$dbpast' AND '$dbnow'

参见:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_timestampdiff

您当前可能正在使用TIMEDIFF(),它可以为您提供那些“时髦”的值

关于php - 添加数据库结果的时间部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47254274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com