Php 对变量隐藏值

Php 对变量隐藏值,php,Php,我一直试图隐藏从该变量返回的结果: $fileddataname=$row[“dateupload”]; $date1=新日期时间($fileddataname”); $date2=新的日期时间(“现在”); $diff=date_diff($date1,$date2); $years=$diff->format(“%y anos”); $months=$diff->format(“%m meses”); $days=$diff->format(“%d dias”); $hours=$diff-

我一直试图隐藏从该变量返回的结果:

$fileddataname=$row[“dateupload”];
$date1=新日期时间($fileddataname”);
$date2=新的日期时间(“现在”);
$diff=date_diff($date1,$date2);
$years=$diff->format(“%y anos”);
$months=$diff->format(“%m meses”);
$days=$diff->format(“%d dias”);
$hours=$diff->format(“%h horas”);
$minutes=$diff->format(“%i分钟”);
$seconds=$diff->format(“%s segudos”);
如果($years==0){
回音$months.'.$days.'.$hours.'.$minutes.'.$seconds.''.';
}
如果($months==0){
回声$days、.$hours、.$minutes、.$seconds;
}
elseif($days==0){
回显$hours.'.$minutes.'.$seconds.';
}
elseif($hours==0){
回显$minutes.'.$seconds.';
}
elseif($minutes==0){
回声$秒';
}
数据格式:

2020-02-21 13:58
我需要用0和周围的单词隐藏值:

0 years 0 days 33 minutes 22 seconds.
致:


更新:

好吧,这真的很难看,我根据他的回答做了一个更好的选择:

$date1=新日期时间('2020-02-22 13:58');
$date2=新的日期时间(“现在”);
$diff=date_diff($date1,$date2);
$times=[
“%y”=>[“年”,“年”],
“%m”=>[“月”,“月”],
“%d”=>[“天”,“天”],
“%h”=>[“小时”,“小时”],
“%i”=>[“分钟”,“分钟”],
“%s”=>[“秒”,“秒”],
];
$diff_times='';
foreach($key=>$value的倍){
$d=$diff->format($key);
如果(!空($d)){
$diff_times.=(!empty($diff_times)?“”.$d.。($d==1?$value[0]:$value[1]);
}
}
$diff_次=!空($diff_次)$差异时间。“:”;
回声$diff_次;
旧答案:

不是很漂亮,但很管用。基本上,您可以创建一个变量,并在其上仅存储非零值:

$date1=新的日期时间(“2021-02-22 13:58”);
$date2=新的日期时间(“现在”);
$diff=date_diff($date1,$date2);
$diff_times=“”;
$diff_次。=$diff->格式(“%y”)$差异->格式(“%y年”):“”;
$diff_次。=$diff->格式(“%m”)$差异->格式(“%m个月”):“”;
$diff_次。=$diff->格式(“%d”)$差异->格式(“%d天”):“”;
$diff_次。=$diff->格式(“%h”)$差异->格式(“%h小时”):“”;
$diff_次。=$diff->格式(“%i”)$差异->格式(“%i分钟”):“”;
$diff_次。=$diff->格式(“%s”)$差异->格式(“%s秒”):“”;
回声$diff_次;

完整代码:我不明白。您是否只需要删除零值和单词,即使是一天、一分钟或一秒钟?示例:“2天0分0秒”变为“2天”@Lucius yes:)只需隐藏不重要的文本对不起,投票失败。这是对用户实现的假设(即:carbon),并且是一篇只写代码的帖子,这意味着用户无法从中学习。第二,这个函数很简单,给出很多注释只会让它变得混乱。在某些情况下(足够简单),用代码描述你的想法是个好主意。我不认为只有代码的帖子是一个用户无法从中学习的问题。首先,你不能基于看不见的代码做出假设。第二,你认为杂乱无章,实际上需要在这里是一个很好的答案:---因为事情看起来简单,对你来说,并不意味着它对有问题的人。@ QuynhXuanNguyen在我的第一个评论,我展示巴斯丁所有的代码,谢谢你的答复。谢谢你实时解决所有这些代码哈哈哈哈,很好@AndréSantos,请使用我的更新版本,它比第一个版本好。语法错误,C:\xampp\htdocs\profile.php中的意外文件结尾在第行(最后一行)@AndréSantos$diff_times=“”;回显$diff_次正是我的parse_diff。最终结果将丢失点字符。@AndréSantos在这里尝试一下:
33 minutes 22 seconds.