Как я могу добавить дни к определенной дате, пропустить воскресенье и продолжить в другие дни? - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь создать массив дат. Идея состоит в том, что я добавляю число x дней и код, при добавлении дней пропускаю только воскресенье.

Это для Laravel, и я использую углерод.

$date = Carbon::now();
   $dates = [];

   for($i = 1 ; $i < 20; $i++){


    if($date->dayOfWeek === Carbon::SATURDAY){

        echo $dates[$i] = $date->addDay(1)->format('d/m/Y') . " - Sunday <br> ";


    } else {


        echo $dates[$i] = $date->addDay(1)->format('d/m/Y') . "<br>";

    }

Когда я использую константу SUNDAY, чтобы пропустить эту дату, она не работает. Воскресенье считается понедельником

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Проблема в том, что вы проверяете, суббота ли, а после этого вы добавляете в него день. Вам нужно повторить дату до того, как вы добавите к ней день.

Попробуйте это:

if($date->dayOfWeek === Carbon::SUNDAY){ // checking if the current date is a sunday
    echo $dates[$i] = $date->format('d/m/Y') . " - Sunday <br> "; // echo and add the current date to the array
    $date->addDay(1);
} else {
    echo $dates[$i] = $date->format('d/m/Y') . "<br>"; // echo and add the current date to the array
    $date->addDay(1);
}
0 голосов
/ 07 июня 2019

Я получил это с этим кодом:

$inicialDate = Carbon::now();
    $newDate = [];

    for($i = 1; $i < 30; $i++)
    {

        $newDate[$i] = $inicialDate->addDay(1);

            if($newDate[$i]->format('l') == "Sunday") 
            {
                $newDate[$i] = $inicialDate->addDay(1);
            }

            echo $newDate[$i]->format('d/m/Y') . " - " . $newDate[$i]->format('l') . "<br>";

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...