php - 在循环内添加或插入条件
问题描述
我有一个 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 只是一个例子,它可能会不时改变,所以基本上它是动态的。这里最好的方法是什么?
解决方案
您可以使用 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
}
}
推荐阅读
- python - pandas 数据框中的聚合,其中一行中的列名
- vue.js - 当我改变路线时,歌曲停止播放。如何制作动态音频?
- crystal-reports - 水晶报表无法加载
- ruby-on-rails - Active Storage 有哪些不同的“content_type”?
- r - 如何从 R 中的表中删除行名?
- android - Android listview 错误:您的内容必须有一个 id 属性为“android.R.id.list”的 ListView,但我有两个 listview
- python - 在 BeautifulSoup 中输入内容?
- c# - 如何确定 EF 核心中的自定义服务器评估?
- java - Java中的OpenApi multipleOf
- c++ - Clang-Format 没有正确对齐函数参数