Елегантна робота з датами за допомогою Carbon у Laravel

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 10 січня, 2026
Досліджуйте, як бібліотека Carbon у Laravel спрощує маніпуляції з датами, перетворюючи складні розрахунки на зрозумілий код. Чи готові ви вдосконалити своє програмування, використовуючи ці інтуїтивно зрозумілі методи навігації? Читайте далі!

Бібліотека Carbon у Laravel забезпечує зручні методи для маніпуляцій з датами, спрощуючи знаходження конкретних днів і часів у ваших додатках

Carbon пропонує інтуїтивний інтерфейс для навігації по датах, що дозволяє легко знаходити наступну дату певного дня, попереднє потрапляння конкретного робочого дня або точний час для планування. Ці методи перетворюють складні розрахунки дат на зрозумілий і чистий код

Ось швидка демонстрація:

$today = now(); // 2024-04-05 09:15:00
$today->next('17:00');      // 2024-04-05 17:00:00
$today->next('Wednesday');  // 2024-04-10 00:00:00
$today->previous('Sunday'); // 2024-03-31 00:00:00

Ці можливості навігації особливо корисні в додатках для планування, де логіка дат може швидко ускладнитися:

class EventScheduler
{
    public function findNextSession(Carbon $from)
    {
        // Перейти до наступного робочого дня, якщо зараз вихідні
        if ($from->isWeekend()) {
            $from = $from->nextWeekday();
        }
 
        // Перейти до наступного доступного часу сеансу
        return $from->next('13:00');
    }
 
    public function planTeamMeetings(Carbon $start)
    {
        return [
            'current_sprint' => $start->next('Thursday')->setTime(9, 0),
            'next_sprint' => $start->next('Thursday')->addWeek()->setTime(9, 0),
            'contingency_slot' => $start->next('Friday')->setTime(16, 0)
        ];
    }
 
    public function getHolidaySchedule(Carbon $date)
    {
        return [
            'upcoming_holiday' => [
                'start' => $date->nextWeekendDay()->setTime(10, 0),
                'end' => $date->nextWeekendDay()->setTime(18, 0)
            ],
            'extended_holiday' => [
                'start' => $date->addWeek()->nextWeekendDay()->setTime(10, 0),
                'end' => $date->addWeek()->nextWeekendDay()->addDay()->setTime(18, 0)
            ]
        ];
    }
}

Методи навігації Carbon функціонують як тимчасові скорочення, що дозволяють розробникам безпосередньо висловлювати наміри щодо дат, замість того щоб вручну виконувати розрахунки. Такий підхід призводить до більш зрозумілого та зручного в обслуговуванні коду, який чітко комунікує свій намір, приховуючи складність календарних розрахунків

Популярні

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!