我正试图弄清两个日期之间的差异。来自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。
尝试碳差异功能
$past = now();
$future = now()->addHours(2);
$past->diff($future)->format('%dday %hhour %mminute');
Output
"0day 2hour 0minute"
请确保
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;