Carbon

Carbon , El package que extiende la clase PHP DateTime

Carbon

Trabajar con fechas y tiempo en PHP puede ser complicado. Tenemos que lidiar con strtotime, problemas de formato, cálculos varios y ma_s._

Es aquí donde entra Carbon creado por Brian Nesbit

Algunas de sus funcionalidades especificas para tratar con fechas son:

  • Manejo de husos horarios
  • obtención de la hora actual de manera sencilla
  • Conversión del datetime en algo legible
  • añadir o quitar fechas ("+2 weeks", "-6months").
  • Utilización de Semántica para tratar con las fechas

Si usas Laravel , Carbon esta incluido de serie en el Framework. Pero no tan rápido amigo, existen dos versiones de él: Carbon\Carbon y IIluminate\Support\Carbon.

Según comentan usuarios experimentados, el uso de cualquiera de las dos versiones es seguro. Sin embargo muchos se decantan por Carbon\Carbon debido a que es mas sencillo, claro cuando se importa.

La versión Ilumínate se encuentra forrada alrededor de la librería oficial de carbón, para su compatibilidad total, tanto forward como backward.

Como bien sabrás Laravel ofrece varios atajos para las fechas y horas. Normalmente usamos now() y today(). El uso de now() para recuperar una marca de tiempo para un usuario QUE NO esta en la zona horaria puede generar resultados no deseados. Para solucionar esto debemos almacenar la zona horaria local de cada usuario, realizar la conversión horaria y registrar la marca de tiempo en formato UTC para cada usuario

Cada desarrollador necesitará calcular los límites de semana / mes / año y sus fechas de inicio y finalización. Corbon lo hace mas fácil.

Carbon ofrece una forma ordenada de construir objetos de fecha/hora. Uno de ellos es el constructor de cadenas fluidas que nos permite utilizar en ingles para construir tu objeto

use Carbon\Carbon;

//today=2022-05-07

//returns UTC DateTime object

// chain toDatateString() to get only the date part

Carbon : : make ('first day of this month') //2022-05-01

Carbon : : make ('last day of this month') //2022-05-31

Otra aplicación muy interesante es la de obtener el total de segundos en un intervalo de cadena a través de Carbon interval

use Carbon\CarbonInterval;

// Several ways to initialize the interval:

CarbonInterval::fromString('1h30m')->total('minutes');

CarbonInterval::make('1h30m')->total('minutes');

CarbonInterval::make('1h30m')->totalMinutes;

Como vemos Carbon es una herramienta muy poderosa y completa

Últimos artículos