$arr = explode(':', $row['diff']);
echo "$arr[0] minutes, $arr[1] seconds";
数组正在输出:Array00 hours, 20 minutes
,应输出:[x] hours, [x] minutes
。只要有> = 1小时
这是在SQL中:
TIMEDIFF(now(), listDT) as diff
如果输出是0小时22分钟,有没有显示,只需几分钟?为什么Array在前面?我可以删除它吗?怎么样?
更新
foreach($result as $row)
{
echo "<div class='listing'>";
print $row['uUName'] . '</strong><br />' .
'<strong>' . $row['listTitle'] . '</strong><br />' .
$arr = explode(':', $row['diff']);
echo "{$arr[0]} minutes, {$arr[1]} seconds";
echo "</div>";
}
此STILL输出:Array00 hours, 31 minutes
例如。如何让它看起来像:
00 hours, 31 minutes
或
(理想情况下,如果小时为0)31 minutes
答案 0 :(得分:0)
添加大括号,以便正确解释阵列变量。像这样:
echo "{$arr[0]} minutes, {$arr[1]} seconds";
ETA
省略等于零的部分意味着循环遍历数组并询问是否需要输出数组。
$map=array_combine(array('hours','minutes','seconds'),$arr);//so each part knows its name
$filtred=array_filter($map);//get rid of 0 values
foreach($filtred as $name=>$num){
echo "$num $name ";
}
答案 1 :(得分:0)
sscanf($row['diff'], '%i:%i:%i', $hour, $min, $sec);
echo "$hour hours, $min minutes, $sec seconds";
答案 2 :(得分:0)
尝试echo "{$arr[0]} minutes, {$arr[1]} seconds";
双引号内的数组需要围绕它们的花括号。