@Vova135798

Как форматировать даты?

Мне нужно отформатировать даты, которые я передаю с laravel на VueJS. Где лучше это делать? Форматировать в laravel и отправлять массив с датами, или принимать в VueJS, и форматировать там? Я попытался сделать на сервере, но не получилось. В VueJS приходит пустой массив.
public function getdays(){
        $user = Auth::user()->id;
        $dates = Task::where('user_id', $user)->orderBy('when', 'ASC')->select('when')->get();
        $days = [];
        foreach($dates as $item){
            $days[] = $item->format('d/m/Y H:i:s');
        }
        return $days;
    }
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
return Task::query()
    ->where('user_id', Auth::id())
    ->orderBy('when')
    ->pluck('when')
    ->map(fn(string $date): string => \Carbon\Carbon::parse($date)->format('d/m/Y H:i:s'));
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
pLavrenov
@pLavrenov
Разработка сайтов
Приводить даты к нужному виду надо в ресурсах а для того чтобы не плодить код типа foreach надо использовать ->pluck('field_name')
Ответ написан
iMedved2009
@iMedved2009
Не люблю людей
Может воспользоваться кастингом?
protected $casts = [
    'when' => 'datetime:d/m/Y H:i:s',
];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы