繁体   English   中英

检查结果是否早于30天,并在上方添加标题文本

[英]Check if result is older than 30 days and add header text above

我在Facebook帖子中有一个网格。 我想创建一个存档,人们可以在单击按钮时打开它。 当单击显示超过30天的Facebook帖子时,这需要使用Ajax完成,但这是另一次了。 首先,我需要知道如何在foreach循环中分离数据。

当循环到达30天或更早的第一条帖子时,我希望在其上方显示一个标题文本:“ archive”。

像这样:

post
post
post
post

archive
post(30days or older)
post(30days or older)
post(30days or older)
post(30days or older)

我怎样才能做到这一点? 我已经知道有多少旧帖子了,请参阅我的代码:

foreach ( $feedarray->data as $key => $feed_data )
  {
    if($feed_data->full_picture != ''){
      $fbimage = $feed_data->full_picture;
    }else{
      $fbimage = 'images/placeholder/placeholder.png';
    }

    $shortstrfb = substr($feed_data->message, 0, 70) . '...';
    if($feed_data->message != ''){
      $f++;
    }


    $date1 = date("y-m-d");
    $date2 = date("y-m-d",strtotime($feed_data->updated_time));


    $datetime1 = date_create($date1);
    $datetime2 = date_create($date2);
    $interval = date_diff($datetime1, $datetime2);
    $result = $interval->format('%R%a days');



    // if($f > 5){
    //   break;
    // }

    if($feed_data->message != '' && $feed_data->from->name == 'FB page name'){

      if($result > -30){
        $dagen = 'more than 30';
      }else{
        $dagen = 'less than 30';
      }

      $facebookfeed .= '
          <div class="col-md-4 col-sm-6 col-xs-12 item">
              <div class="vk-project vk-project-grid-item">
                  <div class="vk-img-frame">
                  <span class="datecorner">'.date("d-m-Y",strtotime($feed_data->updated_time)).''.$dagen.'</span>
                      <a href="'.$feed_data->permalink_url.'" class="vk-img">
                          <img style="width:370px;height:270px;object-fit:cover;" src="'.$fbimage.'" alt="">
                      </a>
                  </div>
                  <div class="content-hidden">
                      <p class="inbeeldtext"><a href="'.$feed_data->permalink_url.'">'.$shortstrfb.'</a></p>
                  </div>
              </div>
          </div>';
    }
  }
  echo $facebookfeed;

如何才能做到这一点?

您可以在循环外放置一个变量,并在达到时间限制后将其设置为true

通过检查此变量的状态,可以防止“存档”标题多次出现。

$reachedArchive = false;

foreach(...) {

    $postUpdated = strtotime($feed_data->updated_time);

    if (!$reachedArchive && $postUpdated <= strtotime('-30 days')) {
        $reachedArchive = true;
        echo '<h2>Archive</h2>';
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM