我在表格上排序值时遇到问题。我按created_at列对这些项目进行了排序。一切都很好但是当桌子在上午12:01到12:59收到一个项目时,它们总是首先出现在列表中。我正在使用自定义日期格式。
$date_time = @date('F j Y g:i a', strtotime(@date('F j Y g:i a')));
并且输出为“ 2018年4月15日凌晨2:07 ”
我的 created_at 列是varchar,原因是我正在使用date_default_timezone_set();因为Web服务器在不同时区存储项目并且在实际创建项目时会破坏日期时间,这就是我不使用时间戳的原因。
还有一件事是我希望这些时间呈现为 3小时前发布或昨天无论如何。
我正在使用laravel 5.6。
答案 0 :(得分:1)
对于渲染时的日期时间格式,您可以在模型中创建一个mutator:
public function getCreatedAtAttribute($value)
{
return Carbon\Carbon::createFromFormat('F j Y g:i a', $value)->diffForHumans();
}
对于排序,你想要实现什么?如果你要对日期进行排序,那么午夜就会出现。