如果提供的函数中小时和分钟为零,则隐藏小时和分钟
无论时间小于 1 小时,下面的函数都会输出“小时:0”;当分钟小于 1 时,则输出“分钟:0”。
如何只显示不为零的变量?
谢谢。
function time_difference($endtime){
$hours =date("G",$endtime);
$mins =date("i",$endtime);
$secs =date("s",$endtime);
$diff="'hours': ".$hours.",'mins': ".$mins.",'sec': ".$secs;
return $diff;
}
$end_time =strtotime("+7 hours") - strtotime($entry->pubDate);
$difference = time_difference($end_time);
echo $difference;
The function below outputs hours:0 whether the time is <1 hour or mins:0 when mins<1.
How can I show only the variables that are not zero?
Thank you.
function time_difference($endtime){
$hours =date("G",$endtime);
$mins =date("i",$endtime);
$secs =date("s",$endtime);
$diff="'hours': ".$hours.",'mins': ".$mins.",'sec': ".$secs;
return $diff;
}
$end_time =strtotime("+7 hours") - strtotime($entry->pubDate);
$difference = time_difference($end_time);
echo $difference;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
另一种可能的方法:
Another possible approach:
使用?操作员。
Use the ? operator.
对于更大的时间范围,您最好使用数学而不是使用
date()
:以下函数仅返回 0 - 23 范围内的小时数。如果时间超过一天,小时数将变为零:
需要
(int)
将date()
返回的字符串转换为字符串。使用此“01”
变为1,“00”
变为“0”。For larger time ranges, you'd better use maths instead of using
date()
:The below function would only return hours in the range 0 - 23. If the time exceeds a day, hours become zero:
(int)
is needed to turn the string returned bydate()
into a string."01"
becomes 1 and"00"
becomes "0" using this.