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 .