我已将数据库中的日期存储为“ 15-10-2012 ”,而当日期不超过一天时显示在前端。我需要显示2分钟的年龄, 5小时前等。
我怎样才能做到这一点? 提前谢谢。
输入
15-10-2012
输出
"2 days ago"
答案 0 :(得分:1)
请参阅此文http://www.ozzu.com/programming-forum/mysql-selecting-timestamp-from-database-now-minute-t82112.html
看看MYSQL的INTERVAL http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
我认为这会对你有所帮助:
WHERE UNIX_TIMESTAMP(your_date) > (NOW() - INTERVAL 5 MINUTE)
答案 1 :(得分:0)
首先从日期计算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 :(得分:0)
(假设日 - 月 - 年)
2分钟前:
回音日期('j-n-Y',strtotime('15 -10-2012') - 120);
或者:
回音日期('j-n-Y',strtotime('15 -10-2012 -2 minutes'));
真正的开始日期应该是一个时间戳到第二个。如果只存储日/月/年,那么您需要假设每个日期从00:01开始