Crear fecha – Carbono en Laravel

2 minutos de lectura

Estoy empezando a leer sobre Carbon y parece que no puede averiguar cómo crear un carbon date.

En los documentos se dice que puedes;

Carbon::createFromDate($year, $month, $day, $tz);
Carbon::createFromTime($hour, $minute, $second, $tz);
Carbon::create($year, $month, $day, $hour, $minute, $second, $tz);

Pero, ¿y si acabo de recibir un date me gusta 2016-01-23? ¿Tengo que quitar cada parte y alimentarla a carbon antes de que pueda crear un carbon ¿fecha? o tal vez recibo time me gusta 11:53:20??

Estoy lidiando con fechas y horas dinámicas y escribir código para separar partes de tiempo o fecha no se siente bien.

Cualquier ayuda apreciada.

avatar de usuario
Bogdán

Puede usar una de las dos formas de crear una instancia de Carbon a partir de esa cadena de fecha:

1. Cree una nueva instancia y pase la cadena al constructor:

// From a datetime string
$datetime = new Carbon('2016-01-23 11:53:20');

// From a date string
$date = new Carbon('2016-01-23');

// From a time string
$time = new Carbon('11:53:20');

2. Utilizar el createFromFormat método:

// From a datetime string
$datetime = Carbon::createFromFormat('Y-m-d H:i:s', '2016-01-23 11:53:20');

// From a date string
$date = Carbon::createFromFormat('Y-m-d', '2016-01-23');

// From a time string
$time = Carbon::createFromFormat('H:i:s', '11:53:20');

La clase Carbon solo está extendiendo el PHP DateTime clase, lo que significa que puede usar todos los mismos métodos, incluido el mismo constructor parámetros o el createFromFormat método.

  • ¿Puedo usar la opción 1 con el tiempo también?

    – moh_abk

    24 de enero de 2016 a las 1:37

  • Seguro que puede. El constructor acepta cualquier cadena de fecha y/u hora que tenga un formato válido según el Formatos de fecha y hora admitidos Documentación. Entonces funcionará con una marca de tiempo como esta 11:53:20 también.

    – Bogdán

    24 de enero de 2016 a las 1:42


  • Gracias por la ayuda como siempre. Lo hace carbon ¿Tienes algún método para redondear? o ¿cómo puedo redondear con carbon después de haber agregado minutos, etc.

    – moh_abk

    24 de enero de 2016 a las 19:09

  • ¿Podría proporcionar un ejemplo del valor inicial y el valor al que desea redondearlo?

    – Bogdán

    24 de enero de 2016 a las 19:21

  • Cualquier valor de tiempo realmente. Me gusta '11:53:20'… me gustaría redondear al más cercano 5 así que a '11:55:00' por ejemplo. En mi antiguo código que estaba usando ceil

    – moh_abk

    24/01/2016 a las 19:25


¿Ha sido útil esta solución?