PHP

次に来る◯時のタイムスタンプを取得するシンプルな方法

次に来る◯時(5時とか)のタイムスタンプが欲しい時ありますよね?
色々方法はあると思いますが、なんだかんだで日をまたぐと煩雑になりがち。
ということでstrtotime()を使ってシンプルに片付けたのでメモ。

strtotime(sprintf($hour > date('G') ? '%d:00' : '+1 day %d:00', $hour)));


テストコードはこちら

<?php
// 次回の正午のタイムスタンプを求めたい(今日かもしれないし、明日かもしれない)
$hour = 12;

$nextTargetTime = strtotime(sprintf($hour > date('G') ? '%d:00' : '+1 day %d:00', $hour)));

echo date('Y-m-d H:i:s', $nextTargetTime);

strtotime()様々です。
まあ、ホントは'next 12:00'とか認識してくれたら最高なんですけどね。
※翌日の表現は'yesterday'でも'next day'でもいいけど'+1 day'が一番文字数が少ない。

コメント

タイトルとURLをコピーしました