人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: seadwell
●カテゴリ:ウェブ制作
✍キーワード:2011-03-16 4:3 MySQL データ 現在
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● deflation
●27ポイント

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

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

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


$dt = (string)$row['dt'];
$d0 = mktime();
$dd = $d0 - $dt;
◎質問者からの返答

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

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

2011-03-16 12:54:35

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

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


2 ● JULY
●27ポイント

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

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

CREATE TABLE test (
 ts timestamp
)

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

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

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

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

◎質問者からの返答

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

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

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

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


3 ● deflation
●26ポイント ベストアンサー

1で回答した者です。

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

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

$dt = (string)$row['dt'];
$dt = strtotime($dt);
$d0 = mktime();
$dd = $d0 - $dt;
◎質問者からの返答

無事動作しました!

strtotime()

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

勉強になります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ