¿Cómo convertir un carbón en cuerda, para tomar solo la fecha?

1 minuto de lectura

Avatar de usuario de Almaida Jody
jody almaida

yo tengo una coleccion como esta

0 => array:4 [
  "so" => "SO-1"
  "product_name" => "EXTREME FORTE - BP"
  "created_at" => Carbon @1527481346 {#628
    date: 2018-05-28 04:22:26.0 UTC (+00:00)
  }
  "id" => "5b0b84027475aa1508002623"
]

¿Cómo tomar el “2018-05-28” solamente? alguien me puede ayudar a solucionar este problema? gracias de cualquier manera

  • Puedes convertirlo con ->toDateString()

    – DevK

    5 de junio de 2018 a las 4:51

  • Intenté esto antes de hacer este hilo y no puedo resolver este problema …

    –Almaida Jody

    5 de junio de 2018 a las 5:04

  • Posible duplicado de laravel necesita mostrar solo la fecha, no la hora usando la clase de carbono

    – Maquinaria

    12 de junio de 2018 a las 15:55

$collection_item->created_at->format('Y-m-d');

Avatar de usuario de Mohammed Omer
Mohamed Omer

prefiero esto

$model_item->created_at->toDateString();

ya que todos los campos de fecha que se encuentran en protected $dates array en el modal es tipo de \Carbon\Carbon.

por lo que el código anterior podría aplicarse a cualquier campo de fecha siempre que lo haya declarado como fecha en $dates array en el modal de la siguiente manera

// this includes created_at and updated_at by default so no need to add it 
protected $dates = ['approved', 'seen_at'];

También es posible agregar fundición automática a su modelo, por ejemplo:

protected $casts = [
    'created_at' => 'date:Y-m-d',
    'updated_at' => 'datetime:Y-m-d H:00',
];

Observación: su kilometraje puede variar según su versión de Laravel

https://laravel.com/docs/8.x/eloquent-mutators#date-casting

https://laravel.com/docs/8.x/eloquent-serialization#date-serialization

 $carbon = Carbon::parse();

 echo (string)$carbon;
 // 2022-04-13 00:00:00

 $carbon->settings(['toStringFormat' => 'Y-m-d']);

 echo (string)$carbon;
 // 2022-04-13

¿Ha sido útil esta solución?