次に来る◯時(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'
が一番文字数が少ない。
コメント