> Faqs > Calcular la diferencia de dias entre dos fechas en PHP

Calcular la diferencia de dias entre dos fechas en PHP

Hola buenos días, Estoy intentando que un campo de una tabla de el resultado de la direncia entre dosfechas, fechaEnvio y fechaActual. El código es el siguiente:

<?php
    $datetime1 = date_create($fechaActual);
    $datetime2 = date_create($fechaEnvio);
?>
$contador = date_diff($datetime1, $datetime2);
$differenceFormat = '%a';
echo $contador->format($differenceFormat);

Gracias de antemano

Lo relevante para esta pregunta sería indicar el código de tu función date_diff(), así como el formato de las fechas de inicio y de fin. El marcado HTML que tienes es indiferente para la resolución de tu duda. He podido calcular la diferencia de días y que se muestre en al tabla. Gracias
Responder la pregunta
Editar Hacer otra preguntaPreguntar

Respuestas

Para trabajar con fechas en PHP existe una librería muy útil llamada Carbon. https://carbon.nesbot.com/docs/

Esa librería incluye multitud de operaciones con fechas, entre las que encuentras por supuesto la diferencia entre días de dos fechas.

Suponiendo que las fechas las tengas en "formato MySQL", algo como 2019-10-15. Tendrias que hacer lo siguiente:

$currentDate = Carbon::createFromFormat('Y-m-d', $fechaActual);
$shippingDate = Carbon::createFromFormat('Y-m-d', $fechaEnvio);

$diferencia_en_dias = $currentDate->diffInDays($shippingDate);

No sé qué fecha le quieres restar a qué otra. Igual tu operación es al contrario. Aunque esto ya es un problema menor.

$diferencia_en_dias = $shippingDate->diffInDays($currentDate);

Ya dependiendo del formato que tengas en tu fecha la generación de los objetos Carbon puede cambiar, pero ahí es solamente consultar la documentación de la librería.

Julian
105 3 9 15
Hola Julián, gracias por la aportación. Lo he resuelto de la siguiente forma Se trataba de sacar la diferencia entre la facha actual y la fecha de envío en días. Para saber cuantos días tarda un documento en llegar desde que se envía hasta la fecha actual, por lo que cada día ese cambia. Gracias.

Aquí está el código con el que he resuelto la duda. Se trataba de sacar la diferencia en días desde la fecha de envío y la fecha actual, que cambia diariamente.

<?php
  $fechaActual = date('Y-m-d'); 
  $datetime1 = date_create($fechaEnvio);
  $datetime2 = date_create($fechaActual);
  $contador = date_diff($datetime1, $datetime2);
  $differenceFormat = '%a';
  echo $contador->format($differenceFormat);
?>  
Monica
6 3