laravel - restar - ¿Cómo comparar dos marcas de tiempo de carbono?
diferencia entre dos fechas carbon laravel (2)
Tengo dos marcas de tiempo, edited_at que creé y created_at (Laravel''s) ... En la base de datos, ambas tienen tipo timestamp y default value 0000-00-00 00:00:00 ... Pero
var_dump(edited_at variable)
está dando cadena. Mientras var_dump(created_at variable)
es object / Carbon. ¿Qué pasa con estas marcas de tiempo?
Tengo que comparar ambos después de convertirlos a enteros usando el formato (''U''). Solo puedo llamar a este método en Carbon Object. ¿Cómo puedo hacer eso?
Primero, Eloquent convierte automáticamente sus marcas de tiempo ( created_at
, updated_at
) en objetos de carbono. Podrías usar updated_at
para obtener esa bonita función, o especificar edited_at
en tu modelo en la propiedad $dates
:
protected $dates = [''edited_at''];
Ahora volvamos a tu pregunta real. El carbono tiene un conjunto de funciones de comparación:
-
eq()
es igual -
ne()
no es igual -
gt()
mayor que -
gte()
mayor que o igual -
lt()
menos de -
lte()
menor que o igual
Uso:
if($model->edited_at->gt($model->created_at)){
// edited at is newer than created at
}
Primero, convierta la marca de tiempo utilizando la funcionalidad elocuente incorporada, como se describe en esta respuesta .
Entonces puedes usar la función min()
o max()
Carbon para comparar. Por ejemplo:
$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); echo $dt1->min($dt2);
Esto hará echo
la menor de las dos fechas, que en este caso es $dt1
.