Я хочу получить дату завтра. Но если завтра будет Saturday
или Sunday
. Он получит дату в Monday
. Он пропустит субботу и воскресенье. Также, если завтра будет праздник, он пропустит дату и получит следующую дату. У меня есть список даты отпуска в моей базе данных.PHP - Loop while 'false', останавливается, когда это «true»
Я пробовал этот код. Предположим, сегодня Friday, May 24
.
$today = "2013-05-24";
$tommorow = date('Y-m-d', strtotime($today . ' + 1 day'));
$valid = check_valid($tommorow);
while (!$valid){
$tommorow = date('Y-m-d', strtotime($today . ' + 1 day'));
$valid = check_valid($tommorow);
if($valid){
break;
}
}
function check_valid($date){
return true;
$timestamp = strtotime($date);
$day = date('D', $timestamp);
if ($day == "Sat" || $day == "Sun"){
return false;
}
$mysql= mysql_query("SELECT * FROM holiday_data WHERE date = '$date'");
if (mysql_num_rows($mysql) >= 1){
return false;
}
}
Я использую while
статью, потому что я предполагаю, что есть holiday date
, который появляется в двух или трех дней подряд. Например, праздник - 27 и 28 мая, тогда завтра дата должна быть в Wednesday
.
Любые идеи? Не могли бы вы мне помочь?
Если у вас есть другой подход к достижению этого, я также хочу это знать.
Спасибо,
Результат моего кода «$ завтра» - это «25 мая». Я думаю, что проблема 'while' - проблема. – kaitosenpai
Думаю, вам лучше использовать дату ('N'), чем дату ('D') для сравнения. date ('N') возвращает целое число (число дней в неделю). Это только начало. – netvision73
Ваша функция check_valid всегда возвращает true ... – Syjin