Работа с датами в php-laravel

Всем ку, такая задачка, есть дата начала и дата окончания, которую задает клиент и нужна такая проверка, допустим клиент задал такую дату начала Y.m.d "12.08.2022", то дата окончания должна быть, либо плюс 3 месяца, либо 6, либо 9, либо 12, либо 24 месяца ровно, т.е если дата окончания будет 3 месяца и один день уже ошибка и так с каждым месяцем, должно быть ровно, не половина, не день, только ровные месяца, не на день больше, не на половину дня, доступные месяца окончания я указал, типо 3 месяца, минус один день, 6 месяцев минус один день, вот так надо, есть много способов манипуляции с date, но я логически не могу понять, как это реализовать, спасибо заранее!

   public function checkDaysBetween($data)
{
    $end = strtotime($data['agrEnd']);
    if (strtotime(date('d.m.Y', strtotime($data['agrBeg'] . '+3 months'))) == $end || strtotime(date('d.m.Y', strtotime($data['agrBeg'] . '+4 months'))) == $end) {

        return ['code' => 200];
    }
    return [
        'code' => 422,
        'error' => 'Допустимо создавать договор, только на следующие периоды времени: 3 месяца, 6 месяцев, 9 месяцев, 12 месяцев, 24 месяца',
    ];
}

вот мое решение, оно сработало


Ответы (0 шт):