PHP: E-отпуск: вычисление двух дат с использованием оператора if в цикле while - PullRequest
1 голос
/ 04 октября 2011

Я пытаюсь вычислить разницу между двумя датами, исключая субботу и воскресенье. Выход должен быть 9, но вместо этого я получил 1.

<?php

$date1= mktime(0, 0, 0, 12, 20, 2011);
$date2= mktime(0, 0, 0, 12, 30, 2011);
$day1= date("D",$date1);
$day2= date("D",$date2);


$i=0;

while ($date1<=$date2)
{


if ($day1 != "Sat" || $day2 !="Sat" || $day1 != "Sun" || $day2 !="Sun")
   {
    $i++;
   }

else
   {
   $i+0;
   }

   $date1=array(date("Y",$date1), date("n",$date1), date("d",$date1)+1);
   }
     $diff=$i;

    echo $diff;

 ?>

1 Ответ

0 голосов
/ 04 октября 2011

Похоже, что условие в вашем операторе if вызывает проблему.

  if ($day1 != "Sat" && $day2 !="Sat" && $day1 != "Sun" && $day2 !="Sun")
 {
  $i++;
 }

 else
 {
  $i+0;
  }

Переключение || до &&.

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