我有一些數據(由用戶insered),如:的MySQL和PHP - 如何將字符串轉換爲DATETIME
- 10-12-2010
- XX-12-2010
- 10-XX-2010
- 10-12-XXXX
(請注意,我加XX(或XXXX),當數據沒有insered。)
我怎樣才能將這些字符串通過使用MySQL的語法到DATETIME?
感謝
UPDATE
$day=(is_numeric($_POST['day']) && $_POST['day'] > 0 && $_POST['day'] < 32) ? $_POST['day'] : '00';
$month=(is_numeric($_POST['month']) && $_POST['month'] > 0 && $_POST['month'] < 13) ? $_POST['month'] : '00';
$year=(is_numeric($_POST['year']) && $_POST['year'] > 1999 && $_POST['year'] < (date("Y")+1)) ? $_POST['year'] : '0000';
$data=$year."-".$month."-".$day;
$mysqlDate=date('Y-m-d', strtotime($data));
echo $mysqlDate;
還有一個問題:如果數據是*空-12-2010" ,它打印2010-11-30爲什麼
你不會得到這樣的數據丟失。你可以使用strtotime函數,但是它們不能很好地處理。內置函數都不會猜測缺少的部分是什麼。 – profitphp 2010-12-17 15:52:11
您需要解決真正的問題,允許用戶輸入錯誤數據 - 強制他們從丟失列表中選擇日期是通常的做法。如果你允許文本的自由輸入,那麼你必須準備好爆炸和分析每個領域。這是可行的,除了你的情況#3 – Cups 2010-12-17 16:04:19