Функция выбора следующего дня, если последний день выходных

Я пытаюсь создать функцию, которая проверяет диапазон дат. Если последняя дата выходного дня, он выберет следующий день. Предположим, что сегодня 1 марта 2016 года. Если кто-то добавит 5 к нему, то результат будет 7 марта 2016 года. Потому что 6 марта — выходные. Я написал этот код. Но это не работает, и я не могу найти, где проблема. Код как ниже:

<?php
$date = "2016-02-29";
$numOfDays = 8;
$futureDate = strtolower(date("l",strtotime($date." +".$numOfDays."days")));
$weekend1= "friday";
$weekend2= "saturday";

if($futureDate != $$w1 || $futureDate != $w2){
$finalDate = date("Y-m-d",strtotime($futureDate));
}
else{$finalDate = date("Y-m-d",strtotime($futureDate ."+1 day"));}

echo $finalDate;
?>

0

Решение

Проверь это:

  <?php
$date = "2016-02-29";
$numOfDays = 11;
$futureDate = strtolower(date("l",strtotime($date ."+".$numOfDays."days")));
$futureDate1 = strtolower(date("Y-m-d",strtotime($date ."+".$numOfDays."days")));
$weekend1= "friday";
$weekend2= "saturday";

if($futureDate == $weekend1){
$finalDate1 = date("Y-m-d",strtotime($futureDate1 ."+2 days"));
}
if ($futureDate == $weekend2){
$finalDate1 = date("Y-m-d",strtotime($futureDate1 ."+1 days"));
}

echo $finalDate1;
?>
1

Другие решения

6 марта 2016 года — воскресенье, но вы проверяете на пятницу и субботу, вам нужно проверить на субботу и воскресенье, а не на выходные. Кроме того, имена ваших переменных должны совпадать, и для субботы вам нужно добавить два дня, чтобы получить следующий день недели.

<?php
$date = "2016-02-29";
$numOfDays = 8;
$day = 86400;//one day is 86400 seconds
$time = strtotime($futureDate + $numOfDays * $day);//converts $futureDate to a UNIX timestamp
$futureDate = strtolower(date("l", $time));
$saturday = "saturday";
$sunday = "sunday";
if($futureDate == $saturday){
$finalDate = date("Y-m-d", $time + 2 * $day);
}
else if($futureDate == $sunday){
$finalDate = date("Y-m-d", $time + $day);
}
else{
$finalDate = date("Y-m-d", $time);
}
echo($finalDate);
?>
1

@Fakhruddin Ujjainwala
Я изменил ваш код, и теперь он работает идеально. Благодарю. код теперь как показано ниже:

<?php
$date = "2016-02-29";
$numOfDays = 4;
$futureDate = strtolower(date("l",strtotime($date ."+".$numOfDays."days")));
$futureDate1 = strtolower(date("Y-m-d",strtotime($date ."+".$numOfDays."days")));
$weekend1= "friday";
$weekend2= "saturday";

if($futureDate == $weekend1){
$finalDate1 = date("Y-m-d",strtotime($futureDate1 ."+2 days"));
}
else if ($futureDate == $weekend2){
$finalDate1 = date("Y-m-d",strtotime($futureDate1 ."+1 days"));
}
else{
$finalDate1 = date("Y-m-d",strtotime($futureDate1));
}

echo $finalDate1;
?>
0
По вопросам рекламы [email protected]