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
|
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
Tip
Para obtener fechas en español, cambia la configuración de Carbon:
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
Documentación Oficial
Fuentes de Información