Не удается отформатировать дату и время в laravel 7.2.2 - PullRequest
2 голосов
/ 28 марта 2020

В настоящее время я работаю в laravel 7.2.2, и я пытаюсь отформатировать следующие datetime в 'M d Y'.

"created_at": "2020-03-23T12:17:29.000000Z",

Ранее в laravel 6 форматы даты и времени были такими: 2019-12-02 20:01:00. но теперь формат даты изменился и выглядит как выше: 2020-03-23T12:17:29.000000Z.

В laravel 6 я использовал для форматирования даты и времени следующий код:

foreach ($posts as $post) {
        $createdAt = Carbon::parse($post['created_at']);
        $post['created_at'] = $createdAt->format('M d Y'); 
}

Но он выдает тот же вывод, что и выше 2020-03-23T12:17:29.000000Z. Итак, как мне отформатировать дату и время в laravel 7. Любая помощь?

Ответы [ 2 ]

3 голосов
/ 28 марта 2020

Это было серьезное изменение, введенное в Laravel 7.0. Вы все еще можете отформатировать его так, как хотите.

Вы можете переопределить метод serializeDate для вашей модели:

/**
 * Prepare a date for array / JSON serialization.
 *
 * @param  \DateTimeInterface  $date
 * @return string
 */
 protected function serializeDate(DateTimeInterface $date)
 {
     return $date->format('M d Y');
 }

См. Документы в руководстве по обновлению для получения дополнительной информации.

НТН

0 голосов
/ 28 марта 2020

Вы можете использовать Eloquent ресурсов , чтобы преобразовать данные из вашей модели в ответ API. Таким образом, вам не нужно трогать данные и то, как они сохраняются в вашей модели.

Это может выглядеть примерно так, учитывая, что имена ваших столбцов совпадают:

use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Request;

class Post extends JsonResource
{
    public function toArray(Request $request)
    {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'text' => $this->text,
            'created_at' => $this->created_at->format('M d Y'),
            'updated_at' => $this->updated_at->format('M d Y'),
        ];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...