У меня проблема с сортировкой значений в моей таблице. Я отсортировал эти элементы по столбцу created_at. Это все хорошо, но когда таблица получает элемент с 12:01 до 12:59, они всегда появляются в списках первыми. Я использую собственный формат даты.
$date_time = @date('F j Y g:i a', strtotime(@date('F j Y g:i a')));
и имеет выход "15 апреля 2018 2:07"
мой столбец создано на - это varchar, и причина в том, что я использую date_default_timezone_set (); потому что веб-сервер хранит элемент в другом часовом поясе и портит дату и время, когда элемент был фактически создан, поэтому я не использую метку времени.
еще одна вещь заключается в том, что я хочу, чтобы это время отображалось как опубликованное 3 часа назад или вчера в любом случае.
Я использую для этого laravel 5.6.






Для форматирования даты и времени при рендеринге вы можете создать мутатор в своей модели как:
public function getCreatedAtAttribute($value)
{
return Carbon\Carbon::createFromFormat('F j Y g:i a', $value)->diffForHumans();
}
Чего вы пытаетесь достичь при сортировке? Если вы сортируете даты, то сначала наступит полночь.
добавьте это в свою модель. protected $dates = ['created_at']; Чтобы он вернул углеродный объект
точно, полночь стоит на первом месте в списке. скажем, первый элемент вставлен в db = 15 апреля 2018 г., 12:03:23, а второй элемент - в 1:02:02 15 апреля 2018 г. когда я сортирую его по created_at, второй элемент должен быть вверху списка, потому что он был последним. но этого не происходит. Я изменил свой план, я сделал тип datetime в базе данных для столбца created_at. Я делаю {{$ post-> created_at) -> diffForHumans ()}}, но получаю сообщение об ошибке. Вызов функции-члена diffForHumans () в строке