php 按 created_at 排序,午夜永远排在第一位
php order by created_at, midnight always comes first
我在 table 上对值进行排序时遇到问题。我按 created_at 列对这些项目进行了排序。一切都很好,但是当 table 在 12:01am 到 12:59am 上收到一个项目时,它们总是出现在列表的第一位。我正在使用自定义日期格式。
$date_time = @date('F j Y g:i a', strtotime(@date('F j Y g:i a')));
输出为“April 15 2018 2:07 am”
我的 created_at 列是 varchar,原因是我正在使用 date_default_timezone_set();因为 Web 服务器在不同的时区存储项目并在项目实际创建时破坏日期时间,这就是我不使用时间戳的原因。
还有一件事是,我希望这些时间呈现为 3 小时前 或 昨天 发布的内容,无论如何。
我正在使用 laravel 5.6 这个。
对于渲染时的日期时间格式,您可以在模型中创建一个修改器,如下所示:
public function getCreatedAtAttribute($value)
{
return Carbon\Carbon::createFromFormat('F j Y g:i a', $value)->diffForHumans();
}
对于排序,你想达到什么目的?如果您要对日期进行排序,那么我午夜排在第一位。
我在 table 上对值进行排序时遇到问题。我按 created_at 列对这些项目进行了排序。一切都很好,但是当 table 在 12:01am 到 12:59am 上收到一个项目时,它们总是出现在列表的第一位。我正在使用自定义日期格式。
$date_time = @date('F j Y g:i a', strtotime(@date('F j Y g:i a')));
输出为“April 15 2018 2:07 am”
我的 created_at 列是 varchar,原因是我正在使用 date_default_timezone_set();因为 Web 服务器在不同的时区存储项目并在项目实际创建时破坏日期时间,这就是我不使用时间戳的原因。
还有一件事是,我希望这些时间呈现为 3 小时前 或 昨天 发布的内容,无论如何。
我正在使用 laravel 5.6 这个。
对于渲染时的日期时间格式,您可以在模型中创建一个修改器,如下所示:
public function getCreatedAtAttribute($value)
{
return Carbon\Carbon::createFromFormat('F j Y g:i a', $value)->diffForHumans();
}
对于排序,你想达到什么目的?如果您要对日期进行排序,那么我午夜排在第一位。