2012-08-08 61 views
6

嘗試將標準時間變量從表單輸入轉換爲MySQL INSERT可接受的TIME格式。我可能會全力以赴,並可能會使用一些幫助。我已閱讀了MySQL TIME函數和PHP TIME函數,但尚未找到解決方案。將PHP變量「11:00 AM」轉換爲MySQL時間格式

這是我已經試過爲例:

<?php 
$time_input = '11:00 AM'; 

$strtotime = strtotime($time_input); 

$mysql_time = date('H:m:s',$strtotime); 

echo "<p>time_input: $time_input</p>"; 
echo "<p>strtotime: $strtotime</p>"; 
echo "<p>mysql_time: $mysql_time</p>"; 
?> 

結果改變時間11:08:00(不知道在哪裏8分是來自):

time_input: 11:00 AM 

strtotime: 1344438000 

mysql_time: 11:08:00 

任何幫助非常感謝!

+2

8是因爲它是第8個月: 八月。 – Evert 2012-08-08 22:55:20

回答

8

DateTime會爲你做到這一點:

$time_input = '11:00 AM'; 
$date = DateTime::createFromFormat('H:i A', $time_input); 
$formatted = $date->format('H:i:s'); 

我通常避免strtotime()如果可能,因爲它可以在一定程度上不可預測的。

你可以看到它在this demo工作。

+0

感謝您使用DateTime的建議!我會試試看。 – SirOracle 2012-08-08 23:07:16

4

m是與前導零,你想i(帶前導零分鐘)月(八月,即08)格式:

$mysql_time = date('H:i:s',$strtotime); 

PHP date docs

+0

geez ..不敢相信我沒有注意到!謝謝! – SirOracle 2012-08-08 23:06:36

相關問題