如何仅显示前几天或等于今天的内容



我有一个非常简单的问题,我只是不确定为什么我的代码不起作用。

<div id="right_bottom">
<?
list($y, $m, $d) = explode('-', $pagedata->program->start);
foreach($pagedata->program->__workouts as $day => $workout){
   if (date('F j, Y', mktime(0, 0 ,0, $m, $day, $y)) <= date('F j, Y')){
?>
   <div id="right_side">
    <div id="<?=$workout->id?>" class="side_items">
     <a class="workouts" href="<?=$pagedata->program->id?>,<?=$day?>">
     <img src="<?=PROTOCOL?>//<?=DOMAIN?>/img/workout/<?=$workout->image?>"><br />
     <strong><?=$workout->title?></strong></a><br />
     <h2><?=date('F j, Y', mktime(0, 0 ,0, $m, $day, $y))?></h2><br />
   </div>
  </div>
<?
}
}
?>
</div>

我希望 IF 条件语句仅显示今天之前或等于今天的天数的"right_side"DIV。

它目前仍在显示所有日期

我在这里错过了什么?

我会假设这是因为您正在尝试比较两个字符串。尝试比较 unix 时间戳:

if (mktime(0, 0 ,0, $m, $day, $y) <= time()){

希望这有帮助!

您要将字符串作为十进制值进行比较,请尝试:

if(strtotime($y.'-'.$m.'-'.$day) <= strtotime('today')){
    // ...
}

最新更新