日付を「 15-10-2012 」としてデータベースに保存しましたが、日付が1日以内の場合はフロントエンドに表示します。2分経過、5時間前などを表示する必要があります。
どうすればこれを達成できますか?前もって感謝します。
入力
15-10-2012
出力
"2 days ago"
この記事を参照してくださいhttp://www.ozzu.com/programming-forum/mysql-selecting-timestamp-from-database-now-minute-t82112.html
そして、MYSQLの間隔 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.htmlを見てください。
私はこれがあなたを助けると思います:
WHERE UNIX_TIMESTAMP(your_date) > (NOW() - INTERVAL 5 MINUTE)
最初に日付からUNIXタイムスタンプを計算し、次に現在の時刻から減算して、差を分/時間/日で変換します。
list($day,$month,$year) = explode('-', $date);
$time = mktime(0,0,0,$month,$day,$year);
$now = time();
$difference = $now - $time;
$minutes = intval($difference / 60);
$hours = intval($minutes / 60 );
if ($hours > 24) {
$days = intval($hours / 24);
}
(日-月-年を想定)
2分前:
echo date('jnY'、strtotime( '15-10-2012')-120);
または:
エコー日付('jnY'、strtotime('15 -10-2012 -2分'));
実際には、開始日は秒までのタイムスタンプである必要があります。日/月/年だけを保存する場合は、各日付が00:01に始まると想定する必要があります。