我正在使用PHP回显我的MYSQL数据库并尝试计算“时间”列的每一行中“时间”的差异。我在MYSQL数据库中以TIME格式HH:MM:SS(00:00:00)存储“时间”。我想要实现的输出示例:
Saved On | Time (MM:SS) | + / - Time (MM:SS)
----------------------------------
TIMEDATE | 00:11 | + 00:05 |
----------------------------------
TIMEDATE | 00:06 | 00:00 |
----------------------------------
TIMEDATE | 00:06 | - 1:00 |
----------------------------------
TIMEDATE | 00:07 | 00:00 |
----------------------------------
我当前的mysql查询+ php:
$result = mysql_query("SELECT * FROM timer WHERE user_id = '$userid' ORDER BY savedon DESC")
or die(mysql_error());
echo "<table class='sortable'>";
echo "<tr> <th>Saved On</th> <th>Time (MM:SS)</th> <th>+/-</th> </tr>";
while($row = mysql_fetch_array( $result )) {
echo "<tr><td>";
echo $row['savedon'];
echo "</td><td>";
echo $row['time'];
echo "</td><td>";
echo $row['time']; // My issue is right here. I have no clue on how to calculate the +/- difference of times
echo "</td></tr>";
}
echo "</table>";
我的问题:
我正在尝试格式化删除小时前缀的时间。示例:00:06(MM:SS)而不是00:00:06(HH:MM:SS)。
每行应计算上述时间的差异。
我不确定是否应该在查询中使用MYSQL或使用PHP来处理。任何帮助,将不胜感激。
答案 0 :(得分:1)
我认为在PHP中做这个更好
制作循环并在里面你可以使用这样的东西:
$one = new DateTime($firstDate);
$two = new DateTime($secondDate);
$interval = $two->diff($one);
echo $interval->format('%I:%S');
答案 1 :(得分:0)
如果[id]和[id之前的id]需要时间差,可以使用subselect。
SELECT TIMEDIFF(t1.time_row, (
SELECT time_row FROM tablename t2 WHERE t2.id < t1.id ORDER BY id DESC LIMIT 1)
)
FROM tablename t1