php5.1.6 の時間計算の質問です。


MySqlにtimestampの型で2011-03-16 12:54:35というデータが入っています。
この日付から今現在までの秒数を算出したいのですが、どのように書けばいいでしょうか?
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/03/31 13:17:51
  • 終了:2011/03/31 17:12:01

ベストアンサー

id:deflation No.3

deflation回答回数1036ベストアンサー獲得回数1262011/03/31 16:02:23

ポイント26pt

1で回答した者です。

スクリプトが間違っておりました。申し訳ありません。

以下のように訂正をお願いします。

$dt = (string)$row['dt'];
$dt = strtotime($dt);
$d0 = mktime();
$dd = $d0 - $dt;
id:seadwell

無事動作しました!

strtotime()

こんな関数初めて知りました。

勉強になります。

2011/03/31 16:14:49

その他の回答(2件)

id:deflation No.1

deflation回答回数1036ベストアンサー獲得回数1262011/03/31 15:04:52

ポイント27pt

扱う日時が1970年1月1日午前0時0分0秒であれば、以下のようにします。

MySQLから mysql_fetch_array 関数などによって、ご質問にある日時を配列変数 $row['dt'] に代入してあるものとします。

以下のスクリプトで、変数 $dd に差分(秒)が代入されます。


$dt = (string)$row['dt'];
$d0 = mktime();
$dd = $d0 - $dt;
id:seadwell

ご回答ありがとうございます。

しかし、$row['dt']をうまく秒に変換できません。

2011-03-16 12:54:35

mktime()を使うには、並べ替える必要がありますか?

どのように正規表現を使えばいいでしょう?

2011/03/31 15:56:16
id:JULY No.2

JULY回答回数966ベストアンサー獲得回数2472011/03/31 15:08:42

ポイント27pt

MySQL 側で計算させる事が出来ます。

仮に、下記のようなテーブルを作ります。

CREATE TABLE test (
  ts timestamp
)

で、下記のようなクエリーで現在時刻との差の秒数を取得出来ます。

SELECT TIMESTAMPDIFF(SECOND, MAX(ts), NOW()) FROM test

上記のクエリーは、テーブル中にある、最新の日時と比較してますが、どのレコードの日時と比較したいかは、お好みでお願いします。

MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 7.6 日付時刻関数

id:seadwell

ご回答ありがとうございます。

今回は、質問が舌足らずでして取り出しての処理を考えていました。

しかし、頂いた解答例は頭に入れておきたいと思います。

ありがとうございました。

2011/03/31 17:11:36
id:deflation No.3

deflation回答回数1036ベストアンサー獲得回数1262011/03/31 16:02:23ここでベストアンサー

ポイント26pt

1で回答した者です。

スクリプトが間違っておりました。申し訳ありません。

以下のように訂正をお願いします。

$dt = (string)$row['dt'];
$dt = strtotime($dt);
$d0 = mktime();
$dd = $d0 - $dt;
id:seadwell

無事動作しました!

strtotime()

こんな関数初めて知りました。

勉強になります。

2011/03/31 16:14:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません