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

時間の差分を取得する方法

このQ&Aのポイント
  • postgresとPHPを使って開発している際に、timestamp型のデータを取得して、現在時刻との差分を求めたい場合、mktime()やstrtotime()関数を使用して試してみましたが、うまくいきませんでした。
  • 質問者はpostgresで保存されたtimestampデータと現在の時間との差分が1分以内かどうかを判定したいと考えています。
  • 質問者は以下の処理を試しています。 $date変数にpostgresから取得したtimestampデータを格納し、$diff変数に現在時刻との差分を代入します。そして、$diffが60未満ならば処理を実行するという条件です。しかし、うまくいっていません。

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

  • ベストアンサー
  • asahina02
  • ベストアンサー率47% (95/202)
回答No.1

PostgreSQLから取得した時間文字列ですが、もしかしてミリ秒単位まで入っていませんか? こんな感じ→”2005-09-16 16:54:52.175227” これをそのままstrtotimeに渡すと-1が帰ってきてしまい。 正しく変換することができません。 strtotimeに渡すときは yyyy-mm-dd hh:mi:ss という文字列に直してください。 ちなみに私の場合は単純に substr( $datestr, 0, 19 ) とやってます。

noname#135631
質問者

お礼

お返事遅くなり申し訳ありません。 asahina02様のやり方でできました。 ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

>現在の時間との差分が1分以内だったら・・・という処理をしたいのですが ならば、PHPで計算するよりもSELECT時にPostgreSQLで計算してしまえばいいのではないでしょうか? http://www.postgresql.jp/document/pg803doc/html/functions.html 色々関数もあるので組み合わせでできそうな気がします

noname#135631
質問者

お礼

お返事おそくなり、申し訳ございません。 アドバイスありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A