から時間:2012年2月20日私はPHPでの相対的な日付と時刻をプリントアウトする方法を午後9時14分54秒を印刷し、相対日付/私はこのようなSQL日付スタンプを持つSQL/PHP日付スタンプ
?
発生しました:数秒前 発生しました:4分前 発生しました:4時間前 発生しました:月曜日月8日、私は実際の日付
から時間:2012年2月20日私はPHPでの相対的な日付と時刻をプリントアウトする方法を午後9時14分54秒を印刷し、相対日付/私はこのようなSQL日付スタンプを持つSQL/PHP日付スタンプ
?
発生しました:数秒前 発生しました:4分前 発生しました:4時間前 発生しました:月曜日月8日、私は実際の日付
をプリントアウトしたい時間後に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";
// ...
ないコードに懸命です。しかもそれはかなり楽しいです。 Here a sample、ちょうど手を動作させる。このようunixtimeするSQL日付スタンプを変換
スタート:ここ
$unixtime = strtotime('2012-02-20 21:14:54');
サンプルコードをテストしましたが、 "In The Future"と表示されます。実際には機能しません。 – Talon
は、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
私は日付を解析するためにZendのフレームワーク 'Zend_Date'を見てすることをお勧めいたしますでしょうあなたのロケールやその他の要件に応じてフォーマットしてください。 – Vitamin
ちょっと、コードを書くのは難しいことではありません。 [ここでのサンプル](http://dev-tips.com/featured/creating-a-relative-time-function)仕事に手を差し伸べるだけです。 –
データベースサーバーとWebサーバーを比較すると、何らかの理由で時計が不正確な場合には注意が必要です。個人的に私は常にlikeのように比較するので、私はデータベースサーバからのdatetimeとデータベースサーバのNOW()を比較し、同じクロックが使用されていることを確かめます。 –