Navegación inteligente por fechas con Carbon en Laravel

  • Publicado el 24 febrero, 2025
  • Palabras: 104

La biblioteca Carbon de Laravel mejora la manipulación de fechas con métodos de navegación intuitivos, lo que facilita la búsqueda de horas y días específicos en su código.

Navegación inteligente por fechas con Carbon en Laravel

Ya sea que necesites encontrar el lunes siguiente, el viernes anterior u horas específicas como reuniones por la tarde, Carbon ofrece una interfaz fluida para navegar por las fechas. Estos métodos hacen que los cálculos de fechas complejos sean simples y legibles. Vamos a ver como funciona:

 

$now = now(); // 2024-02-15 14:30:00 
$now->next('15:30');     // 2024-02-16 15:30:00
$now->next('Monday');    // 2024-02-19 00:00:00 
$now->previous('Friday'); // 2024-02-09 00:00:00

 

#Ejemplo práctico

A continuación se muestra cómo puede utilizar estos métodos en un sistema de citas:

 

class AppointmentScheduler
{
    public function findNextAvailable(Carbon $from)
    {
        // Skip to next weekday if weekend
        if ($from->isWeekend()) {
            $from = $from->nextWeekday();
        }

        // Set to next business hours
        return $from->next('15:30');
    }

    public function scheduleWeeklyMeeting(Carbon $start)
    {
        return [
            'this_week' => $start->next('Tuesday')->setTime(10, 30),
            'next_week' => $start->next('Tuesday')->addWeek()->setTime(10, 30),
            'backup_day' => $start->next('Thursday')->setTime(14, 30)
        ];
    }

    public function getWeekendAvailability(Carbon $date)
    {
        return [
            'next_weekend' => [
                'start' => $date->nextWeekendDay()->setTime(9, 30),
                'end' => $date->nextWeekendDay()->setTime(17, 30)
            ],
            'following_weekend' => [
                'start' => $date->addWeek()->nextWeekendDay()->setTime(9, 30),
                'end' => $date->addWeek()->nextWeekendDay()->setTime(17, 30)
            ]
        ];
    }
}

 

Estos métodos de navegación simplifican los cálculos complejos de fechas, lo que hace que el código sea más legible y fácil de mantener. Piense en ellos como un GPS para fechas: dígales a dónde quiere ir y ellos encontrarán el camino correcto.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Cree una fecha y hora a partir de una marca de tiempo con este nuevo método de PHP 8.4
1490

Cree una fecha y hora a partir de una marca de tiempo con este nuevo método de PHP 8.4

Traducción de fechas en Laravel con la Libreria DATE
130

Traducción de fechas en Laravel con la Libreria DATE

Validación de fechas con la regla Date de Laravel
572

Validación de fechas con la regla Date de Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión