我找到了一个函数,可以将秒数转换为HH:MM:SS online,函数如下:
function sec2hms ($sec, $padHours = false) {
$hms = "";
$hours = intval(intval($sec) / 3600);
$hms .= ($padHours)
? str_pad($hours, 2, "0", STR_PAD_LEFT). ':'
: $hours. ':';
$minutes = intval(($sec / 60) % 60);
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ':';
$seconds = intval($sec % 60);
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
return $hms;
}我知道这工作得很好,因为如果我执行echo(sec2hms(3600));,它将作为1:00:00返回
我想要发生的是使用该函数转换列timeran中的每个条目,然后将其显示在带有username和score列的HTML表中,我不确定如何做到这一点,所以如果有人可以帮助我,那就太好了。我目前正在使用下面的代码来显示该表,但它只显示了以秒为单位的时间,我希望它的格式为HH:MM:SS:
<tr>
<th>Rank</th>
<th>Username</th>
<th>Time Taken (s)</th>
<th>Score</th>
</tr>
</thead>
<tbody>
<?php
$result = mysql_query("SELECT * FROM gamescores ORDER BY Time DESC");
if (mysql_num_rows($result)) {
for($rank=1; $row = mysql_fetch_assoc($result); $rank++) {
echo "<tr>
<td>{$rank}</td>
<td>{$row['username']}</td>
<td>{$row['timetaken']}</td>
<td>{$row['score']}</td>如果有更好的方法将秒转换为HH:MM:SS,那也太好了。
发布于 2011-08-20 04:48:56
使用MySQL SEC_TO_TIME函数。
示例:
mysql> SELECT SEC_TO_TIME(2378);
-> '00:39:38'因此,您可以将SQL查询编写为:
SELECT username, score, SEC_TO_TIME(timeran) as timetaken FROM gamescores ORDER BY Time DESC然后你的代码就变成了:
<?php
$result = mysql_query("SELECT username, score, SEC_TO_TIME(timeran) as timetaken FROM gamescores ORDER BY Time DESC");
if (mysql_num_rows($result)) {
for($rank=1; $row = mysql_fetch_assoc($result); $rank++) {
echo "<tr>
<td>{$rank}</td>
<td>{$row['username']}</td>
<td>{$row['timetaken']}</td>
<td>{$row['score']}</td>发布于 2011-08-20 04:50:47
你需要用函数包装你的输出。将此代码放在适当的位置。
echo "<td>". sec2hms($row['timetaken']) . "</td>";https://stackoverflow.com/questions/7127204
复制相似问题