質問

mysqlのdatetimeフィールドに日付と時刻を挿入しようとしています。ユーザーが日付と時刻を選択すると、2 つの POST 変数が生成されます。インターネットで検索しましたが、まだ方法がわかりません。

私のコード。

//date value is 05/25/2010
//time value is 10:00

$date=$_POST['date'];
$time=$_POST['time'];

$datetime=$date.$time

$datetime を mysql に挿入すると、日付は 0000-00-00:00:00:00 のように表示されます。

誰かがこれについて私を助けてくれれば幸いです。ありがとう。

役に立ちましたか?

解決

$datetime = $_POST['date'] . ' ' . $_POST['time'] . ':00';
$datetime = mysql_real_escape_string($datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";

より多くの形式を処理できる代​​替ソリューション:

$datetime = $_POST['date'] . ' ' . $_POST['time'];
$datetime = mysql_real_escape_string($datetime);
$datetime = strtotime($datetime);
$datetime = date('Y-m-d H:i:s',$datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";

他のヒント

日付はあなたに形式を示す必要があります: 0000-00-00 00:00:00

だから、あなたはそれを変換する必要があります。ここでこの変換については何千もの質問があります。
最短の方法は似ています

list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);

DateTime形式は次のようになります。

YYYY-MM-DD HH:MM:SS

そのため、そのように見えるように$ datetimeをフォーマットする必要があります。そして、クォートマークにカプセル化する必要があるクエリで。

  • 文字列をに変換します YYYY-MM-DD HH:MM:SS 自分でフォーマットし、
  • または、を使用します str_to_date() mysqlからの関数。

    テーブルデータタイム値に挿入(str_to_date($ date、 "%m/%d/%y%h:%i"))

私が覚えている限り、デフォルトでは、MySQL DateTimeは「yyyy-mm-dd hh:mm:ss」形式にあるはずです。

このようなAPIを介してmysql dbに日付と時刻を追加しました:


APIを呼び出します

http://localhost/SendOrder.php?odate=20120323&otime=164545

  1. odate タイプは日付です
  2. otime タイプはdbの時間です。

Odateは2012-03-23、Otimeは16:45:45として保存されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top