date - day - Diferencia de carbono en el tiempo entre dos fechas en formato hh: mm: ss
laravel date object (3)
Terminé tomando la diferencia total de segundos usando Carbon:
$totalDuration = $finishTime->diffInSeconds($startTime);
// 21
Entonces usé gmdate
:
gmdate(''H:i:s'', $totalDuration);
// 00:00:21
Si alguien tiene una forma mejor me interesaría. De lo contrario esto funciona.
Estoy tratando de averiguar cómo puedo tomar dos cadenas de fecha y hora que están almacenadas en nuestra base de datos y convertirlas a una diferencia en el formato de hora de hh: mm: ss.
Miré en diffForHumans
, pero eso da el formato que me gustaría y devuelve cosas como after
, ago
, etc. lo cual es útil, pero no para lo que estoy tratando de hacer.
La duración nunca abarcará días, solo un máximo de un par de horas.
$startTime = Carbon::parse($this->start_time);
$finishTime = Carbon::parse($this->finish_time);
$totalDuration = $finishTime->diffForHumans($startTime);
dd($totalDuration);
// Have: "21 seconds after"
// Want: 00:00:21
$finishTime->diff($startTime)->format(''%H:%I:%S'');
// 00:00:21
$start = new Carbon(''2018-10-04 15:00:03'');
$end = new Carbon(''2018-10-05 17:00:09'');
Puedes utilizar
$start->diff($end)->format(''%H:%I:%S'');
lo que da la diferencia modulo 24h
02:00:06
Si quieres tener la diferencia con más de 24h, puedes usar:
$start->diffInHours($end) . '':'' . $start->diff($end)->format(''%I:%S'');
lo que da :
26:00:06