Tengo dos marcas de tiempo, edited_at que creé y created_at (Laravel's) ... En la base de datos, ambas tienen marca de tiempo de tipo y valor predeterminado 0000-00-00 00:00:00 ...
var_dump(edited_at variable)
está dando cuerda. Mientras var_dump(created_at variable)
sea objeto / Carbono. ¿Qué hay de malo en estas marcas de tiempo?
Tengo que comparar ambos después de convertirlos en números enteros usando el formato ('U'). Solo puedo llamar a este método en Carbon Object. ¿Cómo puedo hacer eso?
laravel
laravel-5
php-carbon
Hassan Saqib
fuente
fuente
Respuestas:
Primero, Eloquent convierte automáticamente sus marcas de tiempo (
created_at
,updated_at
) en objetos de carbono. Puede usarupdated_at
para obtener esa buena característica o especificaredited_at
en su modelo en la$dates
propiedad:protected $dates = ['edited_at'];
Ahora volvamos a tu pregunta real. Carbon tiene un montón de funciones de comparación:
eq()
es igual ane()
no es igualgt()
mas grande quegte()
mayor o igual quelt()
menos quelte()
menor o igual queUso:
if($model->edited_at->gt($model->created_at)){ // edited at is newer than created at }
fuente
$date1->toDateString() == $date2->toDateString()
null
en PHP ennull
lugar de un objeto Carbon, y obtendráscall to a member function lt() on null
.Carbon tiene un montón de funciones de comparación con nombres nemotécnicos :
Uso:
if($model->edited_at->greaterThan($model->created_at)){ // edited at is newer than created at }
Si no está seguro de en qué versión de Carbon se encuentra, ejecute este
$composer show "nesbot/carbon"
documentación: https://carbon.nesbot.com/docs/#api-comparison
fuente
Primero, convierta la marca de tiempo utilizando la funcionalidad elocuente incorporada, como se describe en esta respuesta .
Entonces puede usar la función
min()
o de Carbonmax()
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);
Esta será
echo
la menor de las dos fechas, que en este caso es$dt1
.Ver http://carbon.nesbot.com/docs/
fuente
Así es como comparo 2 fechas, ahora () y una fecha de la tabla
@if (\Carbon\Carbon::now()->lte($item->client->event_date_from)) ..... ..... @endif
Debería funcionar bien. He utilizado las funciones de comparación proporcionadas por Carbon.
fuente