Php 以设置格式显示TIMEDIFF

Php 以设置格式显示TIMEDIFF,php,mysql,Php,Mysql,阵列正在输出:阵列00小时,20分钟,当它应该输出时:[x]小时,[x]分钟。仅当>=1小时时 这是在SQL中: $arr = explode(':', $row['diff']); echo "$arr[0] minutes, $arr[1] seconds"; 如果输出为0小时22分钟,是否有方法显示,仅分钟?为什么阵列在前面?我可以移除它吗?怎么做 已更新 TIMEDIFF(now(), listDT) as diff 或 (理想情况下,如果小时数为0)31分钟添加大括号,以便可以正

阵列正在输出:
阵列00小时,20分钟
,当它应该输出时:
[x]小时,[x]分钟
。仅当>=1小时时

这是在SQL中:

$arr = explode(':', $row['diff']);
echo "$arr[0] minutes, $arr[1] seconds";
如果输出为0小时22分钟,是否有方法显示,仅分钟?为什么阵列在前面?我可以移除它吗?怎么做


已更新

TIMEDIFF(now(), listDT) as diff


(理想情况下,如果小时数为0)
31分钟

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

00 hours, 31 minutes 
埃塔

省略等于零的部分意味着在数组中循环并询问数组是否需要输出

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


尝试
回显“{$arr[0]}分钟,{$arr[1]}秒”双引号内的数组需要用大括号括起来。

请参见更新的。我不需要在前面有数组,如果hr为0,则不显示它,只显示分钟。我不明白你在这里干什么。你能看到我更新的代码并可能提供帮助吗?谢谢请看更新的。我不需要在前面有数组,如果hr为0,则不显示它,只显示分钟。我该怎么做?当我实现这一点时,使用sscanf()似乎把事情搞砸了。我如何分配$row['diff']到当前时间,就像我目前在MYSQL中所做的那样:
TIMEDIFF(now(),listDT)作为diff
?嘿?我不知道你的意思请看上面。如果我想使用你的代码,它会输出:
30小时54分30秒。这似乎是增加了一天的数额,而不是从今天算起。如何将
$row['diff']
设置为在SQL中使用
选择uUName、listTitle、TIMEDIFF(now()、listDT)作为diff
进行设置。使用类似于
$difftime=$row['diff']
的变量。跟着我?@Jay一点也不。。。。转到此处:您可能会得到更多帮助您的输出不可能包含单词
hours
,它不在您的代码中。。。。
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 ";
} 
sscanf($row['diff'], '%i:%i:%i', $hour, $min, $sec);
echo "$hour hours, $min minutes, $sec seconds";