PHPで一定期間だけnewアイコンを表示する

以前に投稿した、JavaScriptで一定期間だけnewアイコンを表示するのPHP版です。

サンプルコード

まずはnewアイコンを表示する記事の情報です。
1つの記事に対して、タイトルと投稿日がセットで入っている想定です。

$articleData = array(
  array(
    "title" => "記事タイトルD",
    "date" => "2019-10-12"
  ),
  array(
    "title" => "記事タイトルC",
    "date" => "2019-9-30"
  ),
  array(
    "title" => "記事タイトルB",
    "date" => "2019-9-10"
  ),
  array(
    "title" => "記事タイトルA",
    "date" => "2019-8-31"
  )
);

次に記事の出力部分です。
処理としてはJavaScriptの時とだいたい同じで、現在の日にちと記事の日にちを比較して、設定した日数を過ぎていなければアイコンを出力するようにします。

<div class="list">
<?php
$periodDay = 30; // アイコンを表示する日数

date_default_timezone_set('Asia/Tokyo');
$current = strtotime(date("Y-n-j"));
?>

<?php for ($i = 0; $i < count($articleData); $i++) { ?>
<?php
$d = $articleData[$i]['date'];
$d = strtotime($d . "+".$periodDay." day");
?>
  <div class="article">
    <?php if($current < $d): ?>
      <span class="new">NEW</span>
    <?php endif; ?>
    <p class="date"><?php echo $articleData[$i]['date']; ?></p>
    <h2 class="ttl"><?php echo $articleData[$i]['title']; ?></h2>
  </div>
<?php } ?>
</div>

表示期間は3行目の$periodDayで変更できます。
newアイコン表示のデモページ
 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930