> Faqs > Cómo cambiar a Carbon una fecha de un campo timestamp de MySQL en Laravel

Cómo cambiar a Carbon una fecha de un campo timestamp de MySQL en Laravel

Tengo un campo de timestamp en una tabla de MySQL. Es un campo como el created_at y el updated_at típicos de las tablas que creas con Laravel.

El caso es que created_at y el updated_at se convierten automáticamente en objetos Carbon, para poder hacer con ellos todo tipo de operaciones con fechas, pero mi campo no le pasa lo mismo.

El campo se llama "revised_at" y quisiera convertirlo a un objeto Carbon para trabajar con él. ¿Cómo se hace eso?

Respuestas

Esto lo puedes resolver de manera sencilla creando un nuevo objeto carbon (Carbon\Carbon).

use Carbon\Carbon;

// ...

$carbonObjectRevisedAt = new Carbon($this->revised_at);

Pero muchas veces hay un mecanismo mejor todavía si usas los casts de Laravel.

Todo modelo tiene un array de transformaciones (casts) que permite decirle que una propiedad dada, como en tu caso revised_at se debe convertir de alguna manera, en tu caso a fechas.

Esto lo consigues colocando este código en tu modelo laravel

protected $casts = [
    'revised_at' => 'datetime'
];

De esta manera no necesitarás hacer el objeto Carbon a mano, sino que se encargará de hacerlo automáticamente Laravel y pasará igual que pasa con los created_at y el updated_at, que ya son objetos Carbon cuando los necesitas usar.

Espero que te sirva!! saludos!

Julian
669 23 53 40