こんにちはフロントエンドエンジニアのまさにょんです!
今回は、PHPで深夜の時間の判定する方法・深夜時間の計算をする方法について解説していきます。
目次
PHPで深夜の時間の判定する方法・深夜時間の計算をする
あたりまえですが、まずは深夜の定義を何時から何時にするかもあらかじめ決めておく必要があります。
今回は、22時から5時ぐらいまでを深夜として判定をしていきます。
また、4パータンの時刻の表記方法があるので「時刻の表記は、どれを採用するか?」も決めておきましょう。
- H 時刻 24時間表記 (0あり) 08
- G 時刻 24時間表記 (0無し) 8
- h 時刻 12時間表記 (0あり) 08
- g 時刻 12時間表記 (0無し) 8
そして、肝心の深夜判定ですが、PHPで深夜の時間の判定する方法・深夜時間の計算をするためには、
date()
で指定時刻の文字列情報を取得して、それをstrtotime()
を使って、タイムスタンプ(時刻の数値)に変換する必要があります。
strtotime()
を使用するのは、タイムスタンプ(時刻の数値)を取得して、時間の比較(数値の比較)をできるようにするためです。
タイムスタンプ(時刻の数値)をすべて用意できたら「”22:00:00″ < nowtime < “05:00:00″」と現在時刻が深夜の判定時間内かどうかをタイムスタンプで比較計算します。
深夜の判定のSampleCodeは、次のとおりです。
// [ 深夜の判定-Sample ]
// 1. 現在の時刻の文字列を取得する
$nowtime = date("H:i:s"); // 「H 時刻 24時間表記 (0-埋め) 09」を採用!
// 2. 時刻文字列を計算可能なタイムスタンプに変換する
$num_nowtime = strtotime($nowtime);
echo $nowtime . "\n";
echo "数値化: $num_nowtime" . "\n";
// 15:38:50
// 数値化: 1671086330
// 3. 深夜の開始時刻の日付文字列を取得する
$midnight_start = date("22:00:00");
// 4. 深夜の開始時刻を計算可能なタイムスタンプに変換する
$num_midnight_start = strtotime($midnight_start);
echo($midnight_start). "\n";
echo("数値化: $num_midnight_start"). "\n";
// 22:00:00
// 数値化: 1671109200
// 5. 深夜の終了時刻の日付文字列を取得する
$midnight_finish = date("05:00:00");
// 6. 深夜の終了時刻を計算可能なタイムスタンプに変換する
$num_midnight_finish = strtotime($midnight_finish);
echo($midnight_finish). "\n";
echo("数値化: $num_midnight_finish"). "\n";
// 05:00:00
// 数値化: 1671048000
// 7. "22:00:00" < nowtime < "05:00:00" で、現在時刻が深夜の判定時間内かどうかをCheck!
$midnight_flag = ($num_midnight_start <= $num_nowtime && $num_nowtime <= $num_midnight_finish) ? true : false;
if($midnight_flag) echo("深夜やん!"). "\n";
else echo("深夜じゃないよ!"). "\n";
// 深夜じゃないよ!
まとめ
- 深夜の定義を何時から何時にするかもあらかじめ決める。
- 4パータンの時刻の表記方法のどれを使用するかを決める。
date()
で指定時刻の文字列情報を取得する。strtotime()
を使って、時刻の文字列からタイムスタンプを取得する。- タイムスタンプを使って、深夜内の時間かどうかを比較計算する。
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!