如何使用Carbon或PHP获取Laravel中的日期差异

问题描述 投票:0回答:2

我正试图弄清两个日期之间的差异。来自API的格式为Y-m-dTH:i:s。最初,我想输出类似这样的内容。 02h 10m,但是当时差太大时,我不得不切换到01day 12hour 05minute格式。

我尝试使用$duration = 7600$duration = 28800

{{gmdate('t', $duration)}}day {{gmdate('H', $duration)}}hour {{gmdate('i', $duration)}}minute

{{gmdate('d', $duration)}}day {{gmdate('H', $duration)}}hour {{gmdate('i', $duration)}}minute

当差异仅2小时时,此日期总返回1。

php laravel datetime php-carbon
2个回答
0
投票

尝试碳差异功能

$past = now();
$future = now()->addHours(2);
$past->diff($future)->format('%dday %hhour %mminute');

Output

"0day 2hour 0minute"

0
投票

请确保

use Carbon\Carbon;
use Carbon\CarbonInterval;

使用Carbon将您的API日期转换为带格式的日期>

$formatted_dt1=Carbon::parse('2019-09-26 00:00:00');
$formatted_dt2=Carbon::parse('2019-09-28 12:12:11');

$totalDuration = $formatted_dt1->DiffInSeconds($formatted_dt2);

echo CarbonInterval::seconds($totalDuration)->cascade()->forHumans();
// output :- 2 days 12 hours 12 minutes 11 seconds

如果要得到d ay,Minutes,Seconds

然后。
    $formatted_dt1=Carbon::parse('2019-09-26 00:00:00');
    $formatted_dt2=Carbon::parse('2019-09-28 00:00:00');

    $date_diff=$formatted_dt1->diffInDays($formatted_dt2);
    echo $date_diff.' Day '; //2 days


    $hours_diff = $formatted_dt1->diffInHours($formatted_dt2); 
    echo $date_diff.' Hours '; //48 days


    $Minutesdiff = $formatted_dt1->diffInMinutes($formatted_dt2); 
    echo $Minutesdiff.' Minutes '; //2880 Minutes



    $seconddiff = $formatted_dt1->DiffInSeconds($formatted_dt2); 
    echo $seconddiff.' Seconds '; //172800  Seconds
    exit;
© www.soinside.com 2019 - 2024. All rights reserved.