MySQLのdatetime型カラムに格納している値と比較して、24時間以内かどうかを判定
閲覧数:1511
投稿日:2020-04-03
更新日:2020-04-03
MySQLのdatetime型カラムに格納している値と比較して、24時間以内かどうかを判定
※今日かどうかを判定しているわけではない点に注意が必要
なお、今回は要件外だったので未確認だが、%R%a を使用すると、正負の値(+1、0、-1324を)として取得可能
取得する際、intval でint型にしておけば後で比較しやすい、と思われる
$interval = intval($dbUpdateDatetime->diff($todayDatetime)->format('%R%a'));
関連Link
http://phpcode.w4c.work/php/status/102
コード
//現在日時'2020-04-03 11:42:15'
//「'2020-04-03 11:42:15'」とMySQLのdatetime型カラムに格納している値「'2016-08-17 17:44:33.000000'」を比較
//24時間以内ではない
$todayDatetime = new DateTime();
$dbUpdateDatetime = new DateTime($status['modified']);
$interval = $dbUpdateDatetime->diff($todayDatetime)->format('%a');
if($interval === '0'):
echo "24時間以内";
else:
echo "24時間以内ではない";
endif;
//「'2020-04-03 11:42:15'」と過去「'2020-04-02 11:00:00'」を比較
//24時間以内ではない
$todayDatetime = new DateTime();
$dbUpdateDatetime = new DateTime('2020-04-02 11:00:00');
$interval = $dbUpdateDatetime->diff($todayDatetime)->format('%a');
if($interval === '0'):
echo "24時間以内";
else:
echo "24時間以内ではない";
endif;
//「'2020-04-03 11:42:15'」と過去「'2020-04-02 12:00:00'」を比較
//24時間以内
$todayDatetime = new DateTime();
$dbUpdateDatetime = new DateTime('2020-04-02 12:00:00');
$interval = $dbUpdateDatetime->diff($todayDatetime)->format('%a');
if($interval === '0'):
echo "24時間以内";
else:
echo "24時間以内ではない";
endif;
//「'2020-04-03 11:42:15'」と未来「'2020-04-04 11:00:00'」を比較
//24時間以内
$todayDatetime = new DateTime();
$dbUpdateDatetime = new DateTime('2020-04-04 11:00:00');
$interval = $dbUpdateDatetime->diff($todayDatetime)->format('%a');
if($interval === '0'):
echo "24時間以内";
else:
echo "24時間以内ではない";
endif;
//「'2020-04-03 11:42:15'」と未来「'2020-04-04 12:00:00'」を比較
//24時間以内ではない
$todayDatetime = new DateTime();
$dbUpdateDatetime = new DateTime('2020-04-04 12:00:00');
$interval = $dbUpdateDatetime->diff($todayDatetime)->format('%a');
if($interval === '0'):
echo "24時間以内";
else:
echo "24時間以内ではない";
endif;
結果
24時間以内ではない 24時間以内ではない 24時間以内 24時間以内 24時間以内ではない