Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在循环中添加或插入条件_Php_Mysql - Fatal编程技术网

Php 在循环中添加或插入条件

Php 在循环中添加或插入条件,php,mysql,Php,Mysql,我有一个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"); } $begin=新日期时间(“2018-06-01”); $end=新日期时间(“2018-06-30”); 对于

我有一个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");  
}  
$begin=新日期时间(“2018-06-01”);
$end=新日期时间(“2018-06-30”);
对于($i=$begin;$i modify('+1天')){
echo$i->格式(“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.   
for($i=$begin;$i modify('+1天')){
foreach($结果为$行){
如果($i->format(“Y-m-d”)!=$row['rest_day']){echo$i->format(“Y-m-d”);}
否则{echo'Rest Day';}
}  
} 
这里的显示是,每天重复5次,我认为这是因为星期五的数量是5,这实际上是mysql数据结果返回的行数。
星期五只是一个例子,它可能会不时变化,所以基本上是动态的。 这里最好的方法是什么

您可以使用日期('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
    }

}  
$begin=新日期时间(“2018-06-01”);
$end=新日期时间(“2018-06-30”);
对于($i=$begin;$i modify('+1天')){
如果($i->date('D')=='Fri'){
//呼应
}
}  

您可以使用
diff()
来比较两个
DateTime
对象,也可以使用
getTimestamp()
来获取这些
DateTime
对象的unix时间戳并进行比较。如果不清楚您要问什么,为什么不包括您提到的每个代码?很难知道你的星期五日期是什么类型的结构。要检查那天是星期五,你可以这样做
$i->format('w')==5
,我必须在for循环中执行foreach循环,但问题是它重复了,这实际上是mysql数据结果中返回的包含星期五日期的行数。试着分享你所拥有的。但不要期望人们成为心理主义者,猜猜你有什么,你想得到什么。周五只是一个例子,它可能会不时改变