Carbon para PHP: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Carbon y para qué sirve?

\n\n

Carbon es una biblioteca potente y elegante para PHP que extiende la clase nativa DateTime. Si alguna vez has trabajado con fechas en PHP de forma nativa, sabes que el DateTime estándar y DateTimeImmutable proporcionan funcionalidad básica, pero su API suele ser engorrosa y poco intuitiva. Carbon resuelve este problema ofreciendo una sintaxis limpia, legible y expresiva para trabajar con fechas y horas.

\n\n

¿Por qué usar Carbon? Imagina que necesitas:

\n
    \n
  • Añadir 3 días a la fecha actual: $date->add(new DateInterval('P3D')) (PHP nativo) vs $date->addDays(3) (Carbon).
  • \n
  • Obtener la diferencia en días entre dos fechas: el engorroso DateTime::diff() con formato posterior vs $date1->diffInDays($date2).
  • \n
  • Verificar si una fecha es fin de semana: escribir tu propia lógica vs $date->isWeekend().
  • \n
\n\n

Carbon hace que el código no solo sea más corto, sino también mucho más comprensible. Se usa ampliamente en frameworks PHP modernos como Laravel (donde es el estándar), Symfony, Yii y otros. La biblioteca es completamente compatible con el DateTime nativo, lo que significa que puedes usar Carbon en cualquier lugar donde se espere un DateTime.

\n\n

Ventajas clave de Carbon:

\n
    \n
  • Sintaxis expresiva: los métodos tienen nombres que hacen evidente su propósito sin comentarios (startOfDay(), endOfMonth(), isFuture()).
  • \n
  • Inmutabilidad: soporte para CarbonImmutable para trabajar con fechas de forma segura sin efectos secundarios.
  • \n
  • Localización: soporte integrado para formatear fechas en diferentes idiomas.
  • \n
  • API rica: cientos de métodos para manipulación, comparación, formateo y cálculo de fechas.
  • \n
  • Comparación intuitiva: métodos como isBefore(), isAfter(), isSameDay().
  • \n
\n\n

Instalación de Carbon

\n\n

Carbon se instala a través de Composer, el gestor de paquetes estándar para PHP. Si aún no tienes Composer, debes instalarlo (consulta getcomposer.org).

\n\n

Abre una terminal en la raíz de tu proyecto y ejecuta el comando:

\n\n
composer require nesbot/carbon
\n\n

Después de una instalación exitosa, aparecerán en tu proyecto la carpeta vendor/ y el archivo composer.json con la dependencia añadida. Para usar Carbon en tu código, debes incluir el cargador automático de Composer:

\n\n
<?php\nrequire_once 'vendor/autoload.php';\n\nuse Carbon\\Carbon;\n\n// Ahora puedes usar Carbon\necho Carbon::now(); // 2025-04-03 15:30:00\n?>
\n\n

Importante: Carbon requiere PHP versión 8.0 o superior (para las versiones más recientes). Se recomienda usar PHP 8.1+.

\n\n

Inicio rápido con ejemplo de código

\n\n

Pasemos directamente a la práctica. Aquí tienes algunos ejemplos simples que demuestran el poder de Carbon:

\n\n
<?php\nrequire_once 'vendor/autoload.php';\nuse Carbon\\Carbon;\n\n// Fecha y hora actual\n$now = Carbon::now();\necho "Ahora: " . $now . "\\n"; // 2025-04-03 15:30:00\n\n// Crear una fecha a partir de una cadena\n$birthday = Carbon::createFromDate(1990, 5, 15);\necho "Cumpleaños: " . $birthday->format('d.m.Y') . "\\n"; // 15.05.1990\n\n// Manipulación de fechas\n$tomorrow = Carbon::tomorrow();\necho "Mañana: " . $tomorrow . "\\n";\n\n$nextWeek = Carbon::now()->addWeek();\necho "En una semana: " . $nextWeek . "\\n";\n\n// Diferencia entre fechas\n$age = $birthday->diffInYears(Carbon::now());\necho "Edad: $age años\\n"; // 34 o 35\n\n// Verificación de condiciones\n$date = Carbon::parse('2025-12-25');\nif ($date->isChristmas()) {\n    echo "¡Es Navidad!\\n";\n}\n\n//                    

Recommendations