2011-07-19 11 views
1

私のMySQLテーブルでは、私はdatatime列を持っています(時間は次の形式で保存されます2011-02-15 11:01:14)。この情報をPHPで抽出してユーザページに出力します。MySQLデータベースで指定された日時までの日数、時間、分、秒を取得するにはどうすればよいですか?

$results = mysql_query($cmd,$link); 
while ($res_array = mysql_fetch_array($results)) { 
    $submitted_at = $res_array['datetime']; 
    print $submitted_at."<br>"; 
} 

ただし、指定したデータの時刻だけでなく、その時刻も表示したいと考えています。具体的には、(67 day 4 hours 47 minutes 7 seconds ago)のようなものが必要です。 PHPには、それを容易にする関数がいくつかあります。特に、月が28,29,30、および31日かかる可能性があるという事実を気にしています。

代わりに、私はMySQLレベルでそれをやろうと考えました。与えられた時刻から現在のデータまでの秒数を抽出するのは簡単でなければなりません。それから、秒を日、時間、分に簡単に変換できます。しかし、私はmysql_fetch_arrayを使ってこの情報にどのようにアクセスできるのか分かりません。それは$res_array['unix_timestamp(now())-unix_timestamp(datatime)']のようなものでしょうか?

答えて

3

これはあなたのニーズに合わせて書式を変更するだけのものです。

<?php 
$datetime1 = date_create('2009-10-11'); 
$datetime2 = date_create('2009-10-13'); 
$interval = date_diff($datetime1, $datetime2); 
echo $interval->format('%R%a days'); 
?> 

変更この行:

$間隔 - >フォーマット( '%R%に日')

次のガイドラインはこちらから例えば

http://php.net/manual/en/datetime.diff.php

http://php.net/manual/en/function.date.php

編集:この機能は、

PHP 5.3+ですEDIT2:笑その機能については知らなかった、How to calculate the difference between two dates using PHP?

+0

うわーPHP の古いバージョンのためにこれを見つけました。 P – casraf

+0

私は:定義されていない関数を呼び出すdate_diff() – Roman

+0

私とMySQLの場合と同じですが、存在するdatetime関数のほとんどばかげた配列を発見するまでは同じです。当然、私はphp datetimeのものとBOOMを探しました。 –

関連する問題