我的问题有点棘手。我必须显示日期差异。(我以 2 年 7 个月 3 天 5 小时 30 分钟计算日期差异。)
现在我如何显示精确的 2 个更高的值,请考虑给定的情况
案例 1:日期差为 0 年 2 月 21 天 7 小时 30 分钟
输出必须为:2 月 21 天
案例 2:0 年 0 月 0 天 7 小时 20 分钟
输出必须为:7 小时 21 天
如果您的日期差异与您的问题中的确切形式(用“”分隔)并格式化为字符串。这会成功的。
<?php
function display_times($string){
$pieces = explode(" ",$string);
$num_disp = 0;
foreach($pieces as $i => $pice){
if(is_numeric($pice) && intval($pice) != 0){
echo $pice." ".$pieces[$i+1]." ";
$num_disp++;
if($num_disp >= 2) break;
}
}
}
$case1 = "0 year 2 month 21 days 7 hrs 30 min";
$case2 = "0 year 0 month 0 days 7 hrs 20 min";
display_times($case1);
echo PHP_EOL;
display_times($case2);
?>
您可以修改此功能。将第三个参数替换为$depth
并修改 array_slice 行,就像在demo上一样。
使用示例:
echo time_diff_string('2013-05-01 00:22:35', 'now', 1), "\n";
echo time_diff_string('2013-05-01 00:22:35', 'now', 2), "\n";
echo time_diff_string('2013-05-01 00:22:35', 'now', 3), "\n";
echo time_diff_string('2013-05-01 00:22:35', 'now', 4), "\n";
输出 :
6 months ago
6 months, 6 days ago
6 months, 6 days, 12 hours ago
6 months, 6 days, 12 hours, 6 minutes ago
演示。