我想获取明天的日期。但如果明天是Saturday
或Sunday
。它将在Monday
中获得日期。它将跳过星期六和星期日。如果明天是假期,它也会跳过日期并获得下一个日期。我有我的数据库中的节日日期列表。PHP - '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
在两三天在一行中出现。例如,假期在5月27日和28日,那么明天的日期应该在Wednesday
。
任何想法? 你能帮我吗?
如果有其他的方法来做到这一点,我也想知道。
谢谢
我的代码结果是'$ tomorrow'是'May 25'。我认为'while'条款是问题所在。 – kaitosenpai
我认为你最好使用日期('N')比日期('D')进行比较。日期('N')返回一个整数(星期数)。这只是一个开始。 – netvision73
您的check_valid函数总是返回true ... – Syjin