2012-08-08 10 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>"; 
?> 

結果は(ここで8分から来ているかわからない)午前11時08分00秒までの時間を変更されています:

time_input: 11:00 AM 

strtotime: 1344438000 

mysql_time: 11:08:00 
ここ

は、私が例として試みてきたものです

ご迷惑をおかけして申し訳ありません。

+2

8があります:8月。 – Evert

答えて

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

4

m先行ゼロ(8月、すなわち08)と月の形式である、あなたはi(先行ゼロの分を)欲しい:それは8月だから

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

PHP date docs

+0

ああ..私はそれを気付かなかったと信じることができない!ありがとうございました! – SirOracle