$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分钟,有什么方法可以显示,只有几分钟?为什么数组在前面?我可以删除它吗?怎么样?



更新

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

最佳答案

添加括号,以便可以正确解释数组变量。像这样:

echo "{$arr[0]} minutes, {$arr[1]} seconds";


预计到达时间

忽略等于零的部分意味着遍历数组并询问是否需要输出数组。

$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 ";
}

关于php - 以设定格式显示TIMEDIFF,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7824854/

10-11 04:23