以前に投稿した、JavaScriptで一定期間だけnewアイコンを表示するのPHP版です。
サンプルコード
まずはnewアイコンを表示する記事の情報です。
1つの記事に対して、タイトルと投稿日がセットで入っている想定です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $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の時とだいたい同じで、現在の日にちと記事の日にちを比較して、設定した日数を過ぎていなければアイコンを出力するようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <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アイコン表示のデモページ
コメントが承認されるまで時間がかかります。