J'essaie de faire la différence entre deux dates. Le format provenant d'une API est Y-m-dTH: i: s
.
Au départ, je voulais sortir quelque chose comme ça. 02h 10m
mais quand le décalage horaire est trop important j'ai du passer au format 01jour 12hour 05minute
.
J'ai essayé d'utiliser
$ duration = 7600
OU $ duration = 28800
{{gmdate('t', $duration)}}day {{gmdate('H', $duration)}}hour {{gmdate('i', $duration)}}minute
et
{{gmdate ('d', $ duration)}} jour {{gmdate ('H', $ duration)}} heure {{gmdate ('i', $ duration)}} minute
Cela renvoie toujours la valeur du jour 1 lorsque la différence n'est que de 2 heures.
3 Réponses :
Essayez la fonction Carbon diff
"0day 2hour 0minute"
Sortie
$past = now(); $future = now()->addHours(2); $past->diff($future)->format('%dday %hhour %mminute');
Assurez-vous de
$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 Hours $Minutesdiff = $formatted_dt1->diffInMinutes($formatted_dt2); echo $Minutesdiff.' Minutes '; //2880 Minutes $seconddiff = $formatted_dt1->DiffInSeconds($formatted_dt2); echo $seconddiff.' Seconds '; //172800 Seconds exit;
Convertissez vos dates API en une date formatée en utilisant Carbon
$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
Si vous voulez alors obtenir d ay, minutes, secondes .
use Carbon\Carbon; use Carbon\CarbonInterval;
Essayez ceci
$start_date = new DateTime('2012-09-01 04:10:58'); $since_start = $start_date->diff(new DateTime('2012-09-11 10:25:00')); echo $since_start->d.'days '.$since_start->h.'hours '.$since_start->i.'minutes';