2013-05-16 193 views
-2
$Ndate = new DateTime($theValue); 

$theValue = "'" . $Ndate->format('Y-m-d') . "'"; 

我有名字dateOfjourney一個文本框,我想進入日 - 月 - 年格式的日期,並存儲在年 - 月 - 日的格式在MySQL的日期。PHP和MYSQL日期格式

$theValue是,我將在SQL語句中

+0

你要在數據庫中存儲什麼? '$ Ndate'或'$ theValue'? – Voitcus

+0

我想要從文本框中採用m-d-y格式的日期,並使用sql查詢將其轉換爲默認的y-m-d格式 –

+0

爲什麼要在應用程序中混用標準?爲什麼不使用並保存時間戳,然後在向用戶顯示時以指定的格式顯示它們? – inquam

回答

0

一旦你在POST數據的DMY日期使用SQL字符串,你可以這樣做:

$db_date = implode("-" , array_reverse(explode("-" , $date_from_form))); 
4

最可靠,最省心的辦法插入日期,MySQL是使用MySQL的STR_TO_DATE:

STR_TO_DATE('dateOfjourney', '%d-%m-%Y') 

這種方式,用戶可以輸入任何他們想要的,並在後端你有你想要的東西。

+0

+1這很不錯! –

+0

+1,但格式應該是'%m-%d-%Y' – Voitcus

+0

更新它以反映他說他的用戶提供的d-m-y格式。 –

1

你可以轉換它使用php date函數。

date("m-d-y",strtotime($theValue)); 

瞭解strtotime()

+0

我總是想知道'strtotime()'是否可以正確地說出它是「01-02-03」的哪一天。 – Voitcus

+0

我只是改變日期的格式使用strtotime() –

+0

在美國01是月,02是日,03是年。因此,這將是2003年1月2日。但它也可以是2003年2月1日或2001年2月3日。我不喜歡這個功能,因爲你永遠不知道服務器如何處理日期。 – Voitcus

0

你可以使用這個

$user_input = '01-23-2013'; // 23rd of January 
list($month, $day, $year) = explode('-',$user_input); 
$output = $year . '-' . $month . '-' . $day; 
+0

此方法工作 –

0

在PHP 5.3+,你可以這樣做:

$dateFormatted = DateTime::createFromFormat('m-d-y', $dateFromForm)->format('y-m-d');