WordPress: PHP: ある日にちを過ぎたかどうかを関数で判定する方法
function is_close_event($date_str) { if (empty($date_str)){ return false; } //ある日+24時間のタイムスタンプの取得 $date_timestamp = strtotime($date_str) + (24 * 3600); //今のタイムスタンプ取得 $now_timestamp = time(); //ある日+24時間のタイムスタンプの取得 < 今のタイムスタンプ取得 であればtrueを返します if ($date_timestamp < $now_timestamp){ return true; } return false; }
例えばある日を10日の00:00とします。
今は11日の00:00とします。
この状態では、
10日の00:00 + (24 * 3600) = 11日の00:00 イコールとなります。
つまり、今はまだある日を過ぎていないです。
次に、
例えばある日を10日の00:00とします。
今は11日の00:01とします。
10日の00:00 + (24 * 3600) < 11日の00:01 これで1秒だけ今の方が進みました。
つまりある日を過ぎたと判定できます。
まとめ:この関数では日付けがある日を過ぎたらtrueを返すことができます。
何かイベントの開催時間が過ぎたらフラグを立てる際に利用できると思います。
実用例:
single.php
<?php if(is_close_event(get_field('news_day_end'))): ?> <span><img src="/images/news/event_end.png" alt=""/></span> <?php endif; ?>
カスタムフィールドのデイトピッカーの時間を判定に使用しています。