どもです。
ある日時と現在日時の比較を行い、差がX分以上か以下かで処理を分岐させる。
取り敢えず2つの日時をDateTimeで宣言するとして、DateTimeの差分を求める関数にはdate_diff()があります。
$checkDateTime = new DateTime('@1693463796'); //@はタイムスタンプを指す
$nowDataTime = new DateTime();
print_r(date_diff($nowDataTime, $checkDateTime));
//結果
//DateInterval Object
//(
// [y] => 1
// [m] => 10
// [d] => 8
// [h] => 18
// [i] => 43
// [s] => 11
// [invert] => 1
// [days] => 677
//)
おおっと
これ、時分秒単位の差分を取得しようとすると、ここからかなり計算しなくてはいけないですね…
差分を求める関数との触れ込みでしたが、今回使うには違う気がします。
で、色々調べてみましたが、原始的にタイムスタンプ同士を計算するのが結局正解ぽいですね。
ただしstrtotime()は2038年問題があるので結局はDateTimeクラスを噛ませるべきで、
DateTime::getTimestamp()も戻り値がint型なのは変わらないのでformat('U')にすべきだから…
$checkDateTime = (new DateTime('2025-07-09 10:00:00', new DateTimeZone('Asia/Tokyo')))->format('U');
$nowDataTime = (new DateTime())->format('U');
echo floor(($nowDataTime - $checkDateTime)/60);
これが現状の最適解かな。