2012-02-20 47 views
0

から時間:2012年2月20日私はPHPでの相対的な日付と時刻をプリントアウトする方法を午後9時14分54秒を印刷し、相対日付/私はこのようなSQL日付スタンプを持つSQL/PHP日付スタンプ

発生しました:数秒前 発生しました:4分前 発生しました:4時間前 発生しました:月曜日月8日、私は実際の日付

+0

私は日付を解析するためにZendのフレームワーク 'Zend_Date'を見てすることをお勧めいたしますでしょうあなたのロケールやその他の要件に応じてフォーマットしてください。 – Vitamin

+0

ちょっと、コードを書くのは難しいことではありません。 [ここでのサンプル](http://dev-tips.com/featured/creating-a-relative-time-function)仕事に手を差し伸べるだけです。 –

+1

データベースサーバーとWebサーバーを比較すると、何らかの理由で時計が不正確な場合には注意が必要です。個人的に私は常にlikeのように比較するので、私はデータベースサーバからのdatetimeとデータベースサーバのNOW()を比較し、同じクロックが使用されていることを確かめます。 –

答えて

2

をプリントアウトしたい時間後に2012

Googleの2秒後にこれを見つけたhttp://www.mdj.us/web-development/php-programming/another-variation-on-the-time-ago-php-function-use-mysqls-datetime-field-type

一般に、秒のような時間単位を選択し、時間差がこのユニットの最大値(60秒)より小さいかどうかをテストし、その場合は「$ timeDifference $ unit "となります。そうでない場合は、その差を単位の最大値で割って、次のより高い単位(分)でやり直してください。

例:

$timeDif = 60*60*5 + 45; // == 5 hours 45 seconds 

// 60 seconds in a minute 
if ($timeDif < 60) // false 
    return "$timeDif second(s) ago"; 

// convert seconds to minutes 
$timeDif = floor($timeDif/60); // == 300 = 5 * 60 

// 60 minutes in an hour 
if ($timeDif < 60) // false 
    return "$timeDif minute(s) ago"; 

// convert minutes to hours 
$timeDif = floor($timeDif/60); // == 5 

// 24 hours in a day 
if ($timeDif < 24) 
    return "$timeDif hour(s) ago"; 

// ... 
+0

そのリンクは404ページです – Talon

+0

http://www.mdj.us/web-development/php-programming/another-variation-on-the-time-ago-php-function-use-mysqls-datetime-field-/ – Basti

0

ないコードに懸命です。しかもそれはかなり楽しいです。 Here a sample、ちょうど手を動作させる。このようunixtimeするSQL日付スタンプを変換
スタート:ここ

$unixtime = strtotime('2012-02-20 21:14:54'); 
+0

サンプルコードをテストしましたが、 "In The Future"と表示されます。実際には機能しません。 – Talon

1

は、MySQLソリューションがどのように見えるかです:

SELECT date_field, IF (DATEDIFF(NOW(), date_field) < 1, IF (TIMEDIFF(NOW(), date_field) < '01:00:00', CONCAT(MINUTE(TIMEDIFF(NOW(), date_field)), ' minutes'), CONCAT(HOUR(TIMEDIFF(NOW(), date_field)), ' hours')), date_field) AS occurred 
FROM table 
関連する問題