Carbon (fechas

Introducción a Carbon

Carbon es una clase en Laravel que nos permite trabajar con fechas de forma sencilla e intuitiva.

A continuación mostramos un cheatsheet de sus principales usos.

Para referencia completa: Documentación Oficial de Carbon


Crear un objeto de la clase

1
2
3
4
5
6
7
// Crear una fecha con la fecha y hora actual
$fecha = new Carbon();
echo $fecha; // Fecha actual en formato YYYY-MM-DD HH:MM:SS

// Crear una fecha específica
$fecha = new Carbon('1969-12-27');
echo $fecha; // 1969-12-27 00:00:00
Otras formas de crear fechas
### **Usando `Carbon::create()`** Este método permite definir una fecha con mayor precisión:
1
2
3
// Crear una fecha específica (Año, Mes, Día, Hora, Minuto, Segundo)
$fecha = Carbon::create(2024, 12, 25, 15, 30, 45);
echo $fecha; // 2024-12-25 15:30:45
--- ### **Usando `Carbon::createFromFormat()`** Permite crear fechas desde un formato específico:
1
2
$fecha = Carbon::createFromFormat('d/m/Y H:i:s', '31/01/2025 14:00:00');
echo $fecha; // 2025-01-31 14:00:00
--- ### **Usando `Carbon::parse()`** Convierte una cadena de texto en una fecha:
1
2
3
4
5
6
7
// Convertir texto en fecha
$fecha = Carbon::parse('next Monday');
echo $fecha; // 2025-02-03 (si hoy es domingo)

// Desde un timestamp
$fecha = Carbon::createFromTimestamp(1700000000);
echo $fecha; // Fecha correspondiente al timestamp
--- ### **Usando `CarbonImmutable` (Fechas inmutables)** Si necesitas fechas inmutables que no cambien con `add()` o `sub()`, usa **CarbonImmutable**:
1
2
3
4
use Carbon\CarbonImmutable;

$fecha = CarbonImmutable::now();
echo $fecha->addDays(5); // Nueva fecha sin modificar la original

Obtener la fecha actual

1
2
$now = Carbon::now();
echo $now; // 2025-02-02 15:30:45

Formatear fechas

1
2
3
4
5
6
7
8
// Formatos comunes
echo $fecha->toDateString();     // 2025-02-02
echo $fecha->toTimeString();     // 15:30:45
echo $fecha->toDateTimeString(); // 2025-02-02 15:30:45

// Formato personalizado
echo $fecha->format('d/m/Y');    // 02/02/2025
echo $fecha->format('l, d F Y'); // Sunday, 02 February 2025

Operaciones con Fechas

Operaciones con fechas
### Sumar Fechas
1
2
$fecha = Carbon::now()->addDays(10);
echo $fecha; // Fecha +10 días
### Restar Fechas
1
2
$fecha = Carbon::now()->subMonths(1);
echo $fecha; // Fecha -1 mes
### Diferencia entre Fechas
1
2
3
4
5
$fecha1 = Carbon::create(2025, 5, 1);
$fecha2 = Carbon::create(2025, 6, 1);

echo $fecha1->diffInDays($fecha2); // Diferencia en días
echo $fecha1->diffForHumans(); // "hace 1 mes"

Comparación de Fechas

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$fecha1 = Carbon::create(2025, 5, 1);
$fecha2 = Carbon::create(2025, 6, 1);

if ($fecha1->equalTo($fecha2)) {
echo "Son iguales";
}

if ($fecha1->isToday()) {
echo "La fecha es hoy";
}

if ($fecha1->isFuture()) {
echo "La fecha está en el futuro";
}

Manejo de Zonas Horarias

1
2
3
4
5
6
$fecha = Carbon::now('Europe/Madrid');
echo $fecha; // 2025-02-02 16:30:45 (hora de Madrid)

// Convertir a UTC
$fechaUtc = $fecha->timezone('UTC');
echo $fechaUtc; // 2025-02-02 15:30:45 (UTC)

Fechas en Español

1
2
3
4
5
6
setlocale(LC_TIME, 'es_ES.UTF-8');
Carbon::setLocale('es');

$fecha = Carbon::now();
echo $fecha->translatedFormat('l, d F Y'); // domingo, 02 febrero 2025
echo $fecha->diffForHumans(); // "hace 1 segundo"

Helpers de fechas en Laravel

1. now() → Equivalente a Carbon::now()

Devuelve la fecha y hora actual:

1
2
$fecha = now();
echo $fecha; // 2025-02-02 15:30:45

2. today() → Equivalente a Carbon::today()

Devuelve la fecha actual con hora 00:00:00:

1
2
$fecha = today();
echo $fecha; // 2025-02-02 00:00:00

3. tomorrow() → Equivalente a Carbon::tomorrow()

Devuelve la fecha de mañana con hora 00:00:00:

1
2
$fecha = tomorrow();
echo $fecha; // 2025-02-03 00:00:00

4. yesterday() → Equivalente a Carbon::yesterday()

Devuelve la fecha de ayer con hora 00:00:00:

1
2
$fecha = yesterday();
echo $fecha; // 2025-02-01 00:00:00

5. carbon() → Instancia de Carbon desde un valor

Convierte un timestamp, string o DateTime en un objeto Carbon:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// Desde una fecha en string
$fecha = carbon('2025-05-10');
echo $fecha; // 2025-05-10 00:00:00

// Desde un timestamp
$fecha = carbon(1700000000);
echo $fecha; // Fecha correspondiente al timestamp

// Desde un DateTime
$fecha = carbon(new DateTime());
echo $fecha; // Fecha actual

Comparación rápida de helpers

Helper Descripción Equivalente Carbon
now() Fecha y hora actual Carbon::now()
today() Fecha actual a las 00:00:00 Carbon::today()
tomorrow() Fecha de mañana a las 00:00:00 Carbon::tomorrow()
yesterday() Fecha de ayer a las 00:00:00 Carbon::yesterday()
carbon() Convierte cualquier valor en Carbon Carbon::parse() o Carbon::createFromFormat()

Estos helpers simplifican el uso de fechas en Laravel sin necesidad de escribir Carbon::now(), haciéndolo más limpio y elegante. 🚀

📌 Referencias