Php 在循环中添加或插入条件
我有一个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”); 对于
$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数据结果中返回的包含星期五日期的行数。试着分享你所拥有的。但不要期望人们成为心理主义者,猜猜你有什么,你想得到什么。周五只是一个例子,它可能会不时改变