8

標準時間変数をフォーム入力から MySQL INSERT で受け入れられる TIME 形式に変換しようとしています。私はそれについてすべて間違っている可能性があり、いくつかの助けを借りることができます. MySQL の TIME 関数と PHP の TIME 関数を読みましたが、まだ解決策が見つかりません。

例として私が試したことは次のとおりです。

<?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

どんな助けでも大歓迎です!

4

2 に答える 2

10

DateTimeあなたのためにこれを行います:

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

多少予測できない可能性があるため、通常strtotime()、可能な場合は避けます。

このデモで動作することがわかります。

于 2012-08-08T22:52:39.157 に答える
4

m先頭にゼロを付けた月 (8 月、つまり 08) の形式ですi(先頭にゼロを付けた分)。

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

PHP 日付ドキュメント

于 2012-08-08T22:55:17.190 に答える