我想做 StackOverflow 正在做的事情,这就是说自上一篇文章以来已经过去了多长时间。不过有一个问题,SO 会根据上一篇文章的发布时间显示某些信息——例如,如果一篇文章不到一天前,他们会发布上一篇文章的几小时前;如果帖子不到一小时前,他们会发布几分钟前的帖子,等等。
我正在使用以下格式的 MYSQL DateTime 字段:
2012-09-19 13:28:45
我想将上面的时间NOW
与时间进行比较,所以我使用 PHP 的strtotime
函数转换了那个时间,并尝试通过我放在一起的函数来比较两个日期(如下)。当然,这可能是最糟糕的方法,但是在阅读了 PHPDate
和DateTime
函数之后,我开始变得非常非常困惑。
function get_date_format($strToTimeString){
$minute = 60;
$hour = $minutes * 60;
$day = $hour * 24;
$week = $day * 7;
$month = $week * 4;
$year = $month * 12;
$timeNow = strtotime("now");
$timeDiff = $timeNow - $strToTimeString;
if($timeDiff > $minute){
if($timeDiff > $hour){
if($timeDiff > $day){
if($timeDiff > $week){
if($timeDiff > $month){
if($timeDiff > $year){
// Years ago
}
else{
// Months ago
}
}
else{
// Weeks ago
}
}
else{
// Days ago
}
}
else
{
// Hours ago
}
}
else{
// Minutes ago
}
}
else{
// Seconds ago
}
}
有一个更好的方法吗?正如我上面提到的,我在尝试使用时没有运气DateTime->diff
我真的很感激任何帮助。