首页 > 解决方案 > 在循环内添加或插入条件

问题描述

我有一个 php 脚本在两个日期之间循环。

$begin = new DateTime("2018-06-01");  
$end   = new DateTime("2018-06-30");  

for($i = $begin; $i <= $end; $i->modify('+1 day')){  
echo $i->format("Y-m-d");  
}  

然后我有一个 mysql 数据结果(5 行),其中包含星期五的日期。
2018-06-01 - 星期五
2018-06-08 - 星期五
2018-06-15 - 星期五
2018-06-22 - 星期五
2018-06-29 - 星期五

我如何将其集成到 for 循环中,以便如果星期五日期匹配,我可以回显某些内容。

我必须在 for 循环中执行 foreach 循环,但问题是它重复,这实际上是我的 mysql 数据结果中返回的包含星期五日期的行数。

for($i = $begin; $i <= $end; $i->modify('+1 day')){  
  foreach($result as $row){  
    if($i->format("Y-m-d")!=$row['rest_day']){  echo $i->format("Y-m-d"); }  
     else{ echo 'Rest Day';}         
  }  
} 

The display here is that for each day it is duplicated 5 times, i think it is because of the number of fridays which is 5, this is actually the number of rows returned from the mysql data result.   

FRIDAYS 只是一个例子,它可能会不时改变,所以基本上它是动态的。这里最好的方法是什么?

标签: phpmysql

解决方案


您可以使用 date('D') 从常规日期格式中检查日期代码。

$begin = new DateTime("2018-06-01");  
$end   = new DateTime("2018-06-30");  

for($i = $begin; $i <= $end; $i->modify('+1 day')){  
    if($i->date('D') == 'Fri'){
     //echo something
    }

}  

推荐阅读