我的表 CalTime 有一列 TimeSpend,其数据类型为 Time。 它以HH:MM:SS格式存储值。 请建议如何对此列的值求和。
Timespent
_______
00:07:00
01:05:00
00:49:00
我想像这样打印总数 02:01:00。
我想知道是否有使用 php 的替代方案。
PS:我尝试使用 php 执行此操作,使用 strtotime 将每个列值(在 while 循环中)转换为时间戳,然后添加它们并将它们转换为所需的格式,如 HH:MM:SS 使用 date('H:i:s')。 这似乎行不通。 代码看起来像这样。
<?php while(...)
{
$ts += strtotime($timeCal['timespent']);
} ?>
在几秒钟内转换它,然后求和,然后回到时间:
SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `timespent` ) ) ) AS timeSum
FROM CalTime
这是一个简单的功能。您可以循环访问数组中的值以继续添加到以下代码中。
//Incase strtotime gives any errors
date_default_timezone_set('America/New_York');
//
$mytime1 = "00:07:00";
$mytime2 = "01:05:00";
$secs = strtotime($mytime2)-strtotime("00:00:00");
$result = date("H:i:s",strtotime($mytime1)+$secs);
循环中的伪代码示例。
在 php 数组中返回 mysql 结果
$mytime1 = $myTimeArray[0];
$result = 0;
for($i=0;i<sizeOf($myTimeArray;$i++)) {
$secs = strtotime($mytime[$i])-strtotime("00:00:00");
$result + = date("H:i:s",strtotime($mytime1)+$secs);
}