MySQLのdatetime型カラムに格納している値と比較して、24時間以内かどうかを判定
閲覧数:1192
投稿日: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時間以内ではない