1

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

<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 条件语句仅显示今天之前或等于今天的“右侧”DIV。

它目前仍在显示所有天

我在这里想念什么?

4

2 回答 2

3

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

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

希望这可以帮助!

于 2012-06-05T01:41:16.457 回答
1

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

if(strtotime($y.'-'.$m.'-'.$day) <= strtotime('today')){
    // ...
}
于 2012-06-05T01:41:35.443 回答