我有这个...
$firstDate = $row['date']; // 2013-09-11 18:35:24
$secondDate = date("Y-m-d H:i:s");
$datetime1 = new DateTime($firstDate);
$datetime2 = new DateTime($secondDate);
$interval = $datetime1->diff($datetime2);
if($interval->y !== 0)
{
$elapsed = $interval->format('%y years ago');
}
else
if($interval->m !== 0)
{
$elapsed = $interval->format('%m months ago');
}
else
if($interval->a <= 7 && a >=1)
{
$elapsed = $interval->format('%a days ago');
}
else
if($interval->h !== 0)
{
$elapsed = $interval->format('%h hours ago');
}
else
if($interval->i !== 0)
{
$elapsed = $interval->format('%i minutes ago');
}
else
if($interval->S !== 0)
{
$elapsed = $interval->format('%S seconds ago');
}
$elapsed = str_replace(array('0 years ago', ' 0 months ago', ' 0 days ago', ' 0 hours ago', ' 0 minutes ago'), '', $elapsed);
$elapsed = str_replace(array('1 years ago', '1 months ago', '1 days ago', '1 hours ago', '1 minutes ago'), array('1 year ago', '1 month ago', '1 day ago', '1 hour ago', '1 minute ago'), $elapsed);
该代码应该获取数据库中的日期并转换为人们可以理解的内容 - 5 天前,5 秒前。但是现在一天后,代码似乎跳过了一天。
我认为这与使用 %a 而不是 %d 有关,但我得到了一个错误。还有什么可能是错的?
谢谢!