生徒さんより
会社の紹介ページへプレミアムフライデーを表示したいけどどうすればと
質問がありましたので、皆様の参考になればと思い公開いたします。
premiumFridayDiff関数は引数の日付の年月より
‘last Fri of `で最終曜日の金曜日の日付を取得いたします。
「最終曜日の金曜日の日付」と引数の日付の日付差を戻り値で返却いたします。
マイナス数値対応しておりますので過ぎた場合もマイナス値で判定できます。
HTML部分はサンプルですので用途に合わせてくださいね。
<?php function premiumFridayDiff(Datetime $dateMoto) { $date = new DateTime($dateMoto->format('Y-m-d')); $lastFriDayString = sprintf('last Fri of %s', $date->format('Y-m')); $lastFriDay = new DateTime($lastFriDayString); $lastFriDayDiff = $date->diff($lastFriDay )->format('%R%d'); return intval($lastFriDayDiff); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>プレミアムフライデイ</title> </head> <body> <?php $diffDay = premiumFridayDiff(new Datetime()); //Datetime引数へ仮日付でテストできます if($diffDay == 0) { echo '<div class="prefri">プレミアムフライデイですよ</div>' ; } else { echo '<div class="prefri">プレミアムフライデイではないですよ(あと'.$diffDay.'日です) </div>' ; } ?> </body> </html>