2017-07-03 25 views
3

我有一張表格,通過datepicker以日期格式存儲數據。儲存時的日期我在做這樣的事情:無法找到兩位數的月份Laravel中的數據缺失

$data['schedule'] = Carbon::parse($request->schedule)->toDateTimeString(); 

然後在模型中,我這樣定義如下:

protected $dates = [ 
    'schedule', 'created_at', 'updated_at', 'deleted_at' 
]; 

現在在檢索我使用diffForHumans()像這樣的日期:

$event->schedule = $event->schedule->diffForHumans(); 

但它拋出一個錯誤是這樣的:

無法找到兩位數的月份。數據丟失

我檢查MySQL數據庫的格式,我有這樣的日期:

2017-07-02 14:38:23 

編輯:

以前我是有一個問題,同時存儲日期詳細說明請參考How to format date receiving through Vuejs Datepicker in laravel。它拋出的錯誤:

無效的日期時間格式:1292不正確的日期時間值: '2017-05-04T18:30:00.000Z' 列 '時間表' 在行1

所以我選擇了在將其存儲在數據庫中時使用Carbon::parse

如何解決這個問題,幫我一把。

謝謝。

+0

問題是你已經在之前$ DATA改變格式[「時間表」]註釋掉,檢查 – Exprator

+0

@Exprator如果我不使用'Carbon :: parse ...'然後它不接受表 –

+0

中的值如果你在'$ data ['schedule']'之前執行'dd($ request-> schedule),你會得到什麼? –

回答

2

與在模型中的存取方法嘗試。

public function getScheduleAttribute($value) 
{ 
    return Carbon::parse($value)->diffForHumans(); 
} 

,並訪問屬性作爲

$event->schedule; 
+0

這是不行的。 –

+0

請使用更新後的答案嘗試 – linktoahref

+1

Yes accessor works。 –

2

嘗試設置日期時間格式( 'Y-M-d H:I:S')

並運行

+0

你的意思是作爲mutator? –

+0

是@NitishKumar 它對你有幫助嗎? –

相關問題