2016-09-26 38 views
1

日期我有一個jQuery的日期選擇器不被保存到MySQL DATEBASE與laravel

$(function() { 
    var date = new Date(); 
    var currentMonth = date.getMonth(); 
    var currentDate = date.getDate(); 
    var currentYear = date.getFullYear(); 
    $('.datepicker').datepicker({ 
    showOn: 'focus',changeMonth: true, 
    minDate: new Date(currentYear, currentMonth, currentDate), 
    changeYear: true, 

}); 
}); 

一些驗證

$this->validate($request, [ 
     "date" => 'required|date', 
    ]); 

和一些轉換的日期通過傳遞給數據庫

$date = $request->input('date'); 
    $date2 = DateTime::createFromFormat('m/d/Y',$date); 
    $date3 = $date2->format("Y-d-m"); 

如果我dd($ date3)在這一點上,選擇日期,我得到這樣的東西

"2016-29-09" 

一切都很好,mysql似乎以y-d-m格式保存。

現在,當我經過

Message::where('id', $messageId)->update([ 
     'updated_at' => Carbon\Carbon::now(), 
     'subject' => 'Status: Price quote delivered.', 
     'quoted' => 1, 
     'price' => $request->input('price'), 
     'estimated_date' => $date3,    
    ]); 

一切變得傳遞到數據庫以外的日期通過。日期在數據庫中保持爲0000-00-00。

幫助?

+1

測試用硬編碼值'「estimated_date」 =>「2016年9月26日」,'不2016-26-09 – devpro

+1

你必須以'Ymd'格式傳遞日期。 – Virb

+1

$ date3 = $ date2-> format(「Y-m-d」); –

回答

3

注意您保存日期爲YEAR-DAY-MONTH和格式正確對於DATEYEAR-MONTH-DAY

另請注意,$date3的值爲「2016-29-09」,由於月份的值無效且Month的正確範圍爲(1- 12)數據類型爲DATE

解決方案:

您需要更改日期格式(年 - 月 - 日)爲每列的你的數據類型。

$date3 = $date2->format("Y-m-d"); // something like 2016-09-26 

您也可以按照參考: http://dev.mysql.com/doc/refman/5.7/en/datetime.html

2

兄弟,檢查了這行:

一切都很好,MySQL的出現在y d-M格式保存。 現在,當我經過

Mysql的默認格式是

Y-M-d

的y d-M

更改格式和TR通過它再次。

+0

那麼爲什麼在地獄裏查看數據庫時會出現「2016-09-28」這樣的條目? 哦,好的。我甚至不在乎。它現在有效。謝謝 –

+0

兄弟,「2016-09-28」是Y-m-d格式,28不是月份。所以只要睜大你的眼睛 –

+0

我要瘋了或者我需要睡眠 –

2

所有你必須做這個:

來源:

$date3 = $date2->format("Y-d-m");

要:

$date3 = $date2->format("Y-m-d");

1

我看到你使用JavaScript日期對象,那麼它在Laravel驗證,你爲什麼不使用碳?如果日期有效,那麼不是另起爐竈,只是讓碳和Laravel處理所有的日期工作:

$date = new \Carbon\Carbon($request->input('date')); 

Message::where('id', $messageId)->update([ 
    'updated_at' => Carbon\Carbon::now(), 
    'subject' => 'Status: Price quote delivered.', 
    'quoted' => 1, 
    'price' => $request->input('price'), 
    'estimated_date' => $date,    
]); 
+0

碳不是一個好的解決方案,因爲它從5核心中脫離出來。* –

+0

請檢查https://github.com/laravel/framework/blob/ 5.3/composer.json它仍然存在 –