2012-02-26 77 views
1

我有一個簡單的文本字段,其類型被定義爲附加jquery datepicker()的日期。現在我已將dateFormat()設置爲dd-mm-yy。所有這些工作正常。但據我所知,MySql需要yyyy-mm-dd的日期。所以我只是想知道如果我可以轉換日期格式使用PHP或JavaScript進入數據庫。使用javascript轉換日期格式

E.g var date = $('#order_date').val();給出值26-2-2012。我需要將其轉換爲2012-02-26。

注意:還有一個0被添加到該月份。

回答

2

使用PHP:

$date = $_POST['date']; // e.g. 06-08-2011 
$mysql_date = date('Y-m-d', strtotime($date)); 

$date = explode('-', $_POST['date']); 
$mysql_date = $date[2].'-'.$date[1].'-'.$date[1]; 

使用$ mysql_date插入到數據庫中。

-1

did you try date.format("yyyy-mm-dd");? ü也可以代替"yyyy-mm-dd"

使用"isoDate"和如果u正在使用MySQL u可以使用DATE_FORMAT(日期, '%Y-%間%d')

+0

拋出一個錯誤! – Namit 2012-02-26 19:19:36

+0

是的,因爲'date'是一個字符串,而不是'Date'對象。 – ThiefMaster 2012-02-26 19:20:20

+0

我發現你必須創建一個格式函數。在這種情況下,喬的答案將起作用。 – 2012-02-26 19:56:53

2

您可以通過解析輸入,並將其加載到一個Date()對象,然後用得到月,getDate和和getFullYear功能的JavaScript做的,如下:

 //Assume input is dd-mm-yyyy 
     var dateParts = $('#order_date').val().split("-"); 
     var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]); 

     //format using getMonth(), getDate() and getFullYear() methods) 
     var formattedMonth = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1); 
     var formattedDate = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); 
     var output = date.getFullYear() + '-' + formattedMonth + '-' + formattedDate; 

你可以看到更多的這優秀StackOverflow post