• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:時間差を求める)

時間差を求める方法とは?

このQ&Aのポイント
  • PHPを使いDB(MySQL)に格納されている登録時間から、そのデータを呼び出した時との時間差を求める方法について詳しく説明します。
  • 簡単な方法としては、格納されているTIMESTAMP型の登録時間をUNIXタイムスタンプに変換し、現在のUNIXタイムスタンプとの差を計算することです。
  • また、MySQLのクエリを送信する際にNOW()関数を使用して時間差を計算し、その結果を変数に代入して返すことも可能です。

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

phpで計算するなら、MySQLデータベースからは、UNIX_TIMESTAMP(`日時型カラム値`) でutc秒を得ておいて、phpのtime()関数と比較すれば、秒数単位の違いが得られる。日時分への変換はさらに適宜、除算と剰余を計算。 MySQL で計算するなら、TIMEDIFF(now(),datetime_expr2) で hh:mm:ss形式で得られる。24時間以上を日付表示するには、phpで適宜換算が必要だろう。 それとも、TIMESTAMPDIFFで、各単位の数値を得るとか? select TIMESTAMPDIFF(MONTH,"2009-01-01 12:12:12", now()) as diff_mon , TIMESTAMPDIFF(DAY,"2009-01-01 12:12:12", now())%30 as diff_d , TIMESTAMPDIFF(HOUR,"2009-01-01 12:12:12", now())%24 as diff_h , TIMESTAMPDIFF(MINUTE,"2009-01-01 12:12:12", now())%60 as diff_min , TIMESTAMPDIFF(SECOND,"2009-01-01 12:12:12", now())%60 as diff_s ; よほど、大量の行を対象にするのでもない限り、計算時間に大差はないので、この方が楽かもしれない。

atse
質問者

お礼

MySQLにそういった関数も用意されているのですね。 とても参考になりました、それで色々と出来そうです。 ありがとうございます。

関連するQ&A