0

我的问题有点棘手。我必须显示日期差异。(我以 2 年 7 个月 3 天 5 小时 30 分钟计算日期差异。)

现在我如何显示精确的 2 个更高的值,请考虑给定的情况

案例 1:日期差为 0 年 2 月 21 天 7 小时 30 分钟
输出必须为:2 月 21 天

案例 2:0 年 0 月 0 天 7 小时 20 分钟
输出必须为:7 小时 21 天

4

2 回答 2

0

如果您的日期差异与您的问题中的确切形式(用“”分隔)并格式化为字符串。这会成功的。

<?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);

?>
于 2013-11-07T12:15:54.927 回答
0

您可以修改此功能。将第三个参数替换为$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

演示

于 2013-11-07T12:25:39.547 回答