Laravel - 回归时间早于" 2d ago"

时间:2016-11-21 12:23:26

标签: php laravel laravel-5

将PHP日期转换为这样的格式的最佳方法是什么:

3d ago
18h ago

必须为每个项目实现此功能可能很烦人。

1 个答案:

答案 0 :(得分:2)

我能够得到的最好的东西就是这种模型方法:

public function getTimeAgo($carbonObject) {
    return str_ireplace(
        [' seconds', ' second', ' minutes', ' minute', ' hours', ' hour', ' days', ' day', ' weeks', ' week'], 
        ['s', 's', 'm', 'm', 'h', 'h', 'd', 'd', 'w', 'w'], 
        $carbonObject->diffForHumans()
    );
}

使用它:

$message->getTimeAgo($message->created_at);

示例输出:

  • 2d ago
  • 3w ago

注意: Carbon->diffForHumans()实际上会返回3 days ago18 hours ago所以我需要使用str_ireplace函数