[英]PHP display data based on day for current week alone
我试图根据天数显示在线课程,在本周内,所以我只需要显示星期一:3 节课,星期二:2 节课,星期五:4 节课,星期六:3 节课,仅此而已,但在我的代码中班级不止一个班级,它重复并跳到另一天。 只需检查预期的输出图像日期,您就可以清楚地了解
预期产出
这就是现在发生的,错误图像
下面是我的代码请检查代码部分并给我显示的逻辑
<div class="row"> <?php if ($total_arr) { $mon = true; $tue = true; $wed = true; $thu = true; $fri = true; $sat = true; foreach ($total_arr as $bb_ky => $bb_v) { $dayName = date('l', strtotime($bb_v->openingtimed)); $setStartD = date('md-Y', strtotime($bb_v->openingtimed)); $setStartT = date('hi a', $bb_v->openingtime); $setEndT = date('hi a', $bb_v->closingtime); $chkStart = date('Ymd H:i', $bb_v->openingtime); $chkEnd = date('Ymd H:i', $bb_v->closingtime); ?> <?php if ($dayName == "Monday") { ?> <?php if ($mon) { ?> <div class="col-md-12"> <h5 class="subtitle"><?php echo $dayName . ' ' . $setStartD; ?></h5> </div> <?php } $mon = false; ?> <div class="col-xl-3 col-sm-6 mb-3" > <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($dayName == "Tuesday") { ?> <?php if ($tue) { ?> <div class="col-md-12 mt-4"> <h5 class="subtitle"><?php echo $dayName . ' ' . $setStartD; ?></h5> </div> <?php } $tue = false; ?> <div class="col-xl-3 col-sm-6 mb-3" > <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($dayName == "Wednesday") { ?> <?php if ($wed) { ?> <div class="col-md-12 mt-4"> <h5 class="subtitle"><?php echo $dayName . ' ' . $setStartD; ?></h5> </div> <?php } $wed = false; ?> <div class="col-xl-3 col-sm-6 mb-3" > <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($dayName == "Thursday") { ?> <?php if ($thu) { ?> <div class="col-md-12 mt-4" > <h5 class="subtitle"><?php echo $dayName . ' ' . $setStartD; ?></h5> </div> <?php } $thu = false; ?> <div class="col-xl-3 col-sm-6 mb-3" > <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($dayName == "Friday") { ?> <?php if ($fri) { ?> <div class="col-md-12 mt-4"> <h5 class="subtitle"><?php echo $dayName . ' ' . $setStartD; ?></h5> </div> <?php } $fri = false; ?> <div class="col-xl-3 col-sm-6 mb-3"> <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($dayName == "Saturday") { ?> <?php if ($sat) { ?> <div class="col-md-12 mt-4"> <h5 class="subtitle"><?php echo $dayName . ' ' . $setStartD; ?></h5> </div> <?php } $sat = false; ?> <div class="col-xl-3 col-sm-6 mb-3"> <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php } } ?> </div>
等待您的答复,谢谢
您可以做的是首先运行循环以创建一个新数组并将您的类分类为单独的基于“天”的组,然后遍历该列表并生成您的输出。
和以前一样,但切换天值,将所有班级分配到那一天。
遍历每个索引(1,2,3,4,5,6)
然后循环每一天(“星期一”),
然后内部循环,通过那天的每个类(数组),
这应该允许您只编写 1 个 html 部分...
希望这在某种程度上有所帮助..
IE:
if ($total_arr)
{
$classes = array();
foreach ($total_arr as $bb_ky => $bb_v)
{
$dayToCheck = date('l', strtotime($bb_v->openingtimed));
switch($dayToCheck)
{
case "Monday" :
$classes[1]['monday'][] = $bb_v;
break;
case "Tuesday" :
$classes[2]['tuesday'][] = $bb_v;
break;
case "Wednesday" :
$classes[3]['wednesday'][] = $bb_v;
break;
case "Thursday" :
$classes[4]['thursday'][] = $bb_v;
break;
case "Friday" :
$classes[5]['friday'][] = $bb_v;
break;
case "Saturday" :
$classes[6]['saturday'][] = $bb_v;
break;
}
}
if(!empty($classes))
{
foreach($classes as $weekDay)
{
foreach($weekDay as $theDayName=>$class)
{
echo "<h2>".ucfirst($theDayName)."</h2>";
foreach($class as $row)
{
$dayName = date('l', strtotime($row->openingtimed));
$setStartD = date('m-d-Y', strtotime($row->openingtimed));
$setStartT = date('h.i a', $row->openingtime);
$setEndT = date('h.i a', $row->closingtime);
$chkStart = date('Y-m-d H:i', $row->openingtime);
$chkEnd = date('Y-m-d H:i', $row->closingtime);
?>
<div class="col-md-12">
<h5 class="subtitle"><?php echo $dayName . ' ' . $setStartD; ?></h5>
</div>
<div class="col-xl-3 col-sm-6 mb-3" >
<div class="card dark-white bg-default o-hidden h-100 mt-3">
<div class="card-body pb-0">
<div class="class-status"><?php echo $status; ?></div>
<div class="live-btn"><?php echo $livebtn; ?></div>
<p class="live-class-left"><?php echo $row->name ?></p>
<small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br>
<small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small>
<img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png">
</div>
</div>
</div>
<?php
}
}
}
}
}
谢谢你们所有人,我尝试并得到了答案......找到下面的代码
<div class="row"> <?php if ($total_arr){ $mon = true;$tue = true;$wed = true;thu = true;$fri = true;$sat = true; $days = [0, 1, 2, 3, 4, 5]; foreach ($days as $dkey => $dvalue){ foreach ($total_arr as $bb_ky => $bb_v){ $dayName = $bb_v->openingtimedd; $setStartD = date('md-Y', strtotime($bb_v->openingtimed)); $setStartT = date('hi a', $bb_v->openingtime); $setEndT = date('hi a', $bb_v->closingtime); $chkStart = date('Ymd H:i', $bb_v->openingtime); $chkEnd = date('Ymd H:i', $bb_v->closingtime); if ($chkStart <= date("Ymd H:i") && $chkEnd >= date("Ymd H:i")){ $status = '<a class="text-success">On Going</a>'; $livebtn = '<a class="btn btn-success text-white get_bbtn" data-metid="' . $bb_v->meetingid . '" data-cid="' . @$get_cmid->id . '" data-id="' . $bb_v->id . '"> Live <i class="fa fa-play-circle"></i> </a>'; } else if ($chkStart < date("Ymd H:i")) { $status = '<a class="text-secondary">Completed</a>'; $livebtn = '<a class="btn btn-secondary text-white get_bbtn" data-metid="" data-cid="" data-id=""> Live <i class="fa fa-play-circle"></i> </a>'; } else if ($chkStart > date("Ymd H:i")){ $status = '<a class="text-info">Upcoming</a>'; $livebtn = '<a class="btn btn-info text-white get_bbtn" data-metid="" data-cid="" data-id=""> Live <i class="fa fa-play-circle"></i> </a>'; } ?> <?php if ($bb_v->openingtimedd == $dvalue && $dvalue == 0){ if ($mon){ ?> <div class="col-md-12"> <h5 class="subtitle"><?php echo date('l', $bb_v->openingtime) . ' ' . $setStartD; ?></h5> </div> <?php } $mon = false; ?> <div class="col-xl-3 col-sm-6 mb-3" > <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($bb_v->openingtimedd == $dvalue && $dvalue == 1){ if ($tue){ ?> <div class="col-md-12 mt-4"> <h5 class="subtitle"><?php echo date('l', $bb_v->openingtime) . ' ' . $setStartD; ?></h5> </div> <?php } $tue = false; ?> <div class="col-xl-3 col-sm-6 mb-3" > <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($bb_v->openingtimedd == $dvalue && $dvalue == 2){ if ($wed) { ?> <div class="col-md-12 mt-4"> <h5 class="subtitle"><?php echo date('l', $bb_v->openingtime) . ' ' . $setStartD; ?></h5> </div> <?php } $wed = false; ?> <div class="col-xl-3 col-sm-6 mb-3" > <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($bb_v->openingtimedd == $dvalue && $dvalue == 3) { if ($thu) { ?> <div class="col-md-12 mt-4" > <h5 class="subtitle"><?php echo date('l', $bb_v->openingtime) . ' ' . $setStartD; ?></h5> </div> <?php } $thu = false; ?> <div class="col-xl-3 col-sm-6 mb-3" > <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($bb_v->openingtimedd == $dvalue && $dvalue == 4) { if ($fri) { ?> <div class="col-md-12 mt-4"> <h5 class="subtitle"><?php echo date('l', $bb_v->openingtime) . ' ' . $setStartD; ?></h5> </div> <?php } $fri = false; ?> <div class="col-xl-3 col-sm-6 mb-3"> <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php if ($bb_v->openingtimedd == $dvalue && $dvalue == 5) { if ($sat) { ?> <div class="col-md-12 mt-4"> <h5 class="subtitle"><?php echo date('l', $bb_v->openingtime) . ' ' . $setStartD; ?></h5> </div> <?php } $sat = false; ?> <div class="col-xl-3 col-sm-6 mb-3"> <div class="card dark-white bg-default o-hidden h-100 mt-3"> <div class="card-body pb-0"> <div class="class-status"> <?php echo $status; ?> </div> <div class="live-btn"> <?php echo $livebtn; ?> </div> <p class="live-class-left"><?php echo $bb_v->name ?></p> <small><i class="far fa-calendar-alt"></i> <?php echo $setStartD; ?></small><br> <small><i class="far fa-clock"></i> <?php echo $setStartT; ?> to <?php echo $setEndT; ?></small> <img class="mr-1 float-right" src="<?php echo $CFG->wwwroot ?>/theme/iomadboost/images/mod_images/live-icon.png"> </div> </div> </div> <?php } ?> <?php } } } ?> </div>
我认为这是另一种方式......对我有用,谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.