在 用 Laravel-admin 擴充套件的時候時間日期格式多了個.000000Z, 而且格式也不對,這個如何解決呢?

sachu發表於2020-07-06


前幾天在使用laravel-admin擴充套件的時候出現了這個現象,用model生成controller的時候時間格式是如圖所示。
明明在資料庫里美這個.000000Z的,那這個.000000Z是如何出現的呢?
這是因為從laravel7開始,資料的格式化(data serialization)的時候就會出現這樣的現象。
具體問題的說明在這裡:
learnku.com/docs/laravel/7.x/upgra...
當碰到日期時間的時候,框架用到了carbon的toJson()方法,導致的結果會是這樣的,會產生跟ISO-8601相容的格式,而且這個總是以UTC的格式顯示。這個我們們先不刨根問底了。
如果想去掉就要在模型檔案裡這樣操作:

use DateTimeInterface;

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

加完這個問題就解決了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章