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_atpara obtener esa buena característica o especificaredited_aten su modelo en la$datespropiedad: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()nullen PHP ennulllugar 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á
echola 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)) ..... ..... @endifDebería funcionar bien. He utilizado las funciones de comparación proporcionadas por Carbon.
fuente