如何在 php 中显示确切的日期差异


How to display exact date difference in php

我的问题有点棘手。我必须显示日期差异。(我发现日期差异是 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行,就像在演示中一样。

使用示例 :

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

演示。