0

日付と時刻のJS日付ピッカーを備えたPHPがあり、すべての文字列をこの形式「19.08.2012 @ 20:18」で$dateという変数に保存します。

この変数をクエリに直接配置すると、データベースに「0000-00-00 00:00:00」と書き込まれます。現在、頭の中に大きなブラック ホールがあるので、助けが必要です。

選択した正しい日付と時刻をデータベースに書き込むにはどうすればよいですか?


申し訳ありませんが、それほど重要ではないと思いました。コードは次のとおりです。

index.php

<script type="text/javascript">
$(function() {
    $("#date").datetimepicker({
        dateFormat:'dd.mm.yy',
        separator: ' @ '
    });
});
</script>

<form action="setting.php" method="post">
 <table>
 <tr>
  <td><label for="date">Date:</label></td>
  <td><input type="text" id="date" name="date"/></td>
 </tr>
</table>
<input type="submit" name="submit" />

設定.php

if(isset($_POST['save_autoresp'])) {
    create($_POST['date']);
    header("Location: admin.php");
    exit();
} else {
    header("Location: index.php");
    exit();
}

関数.php

.......
.......
// Write the fields to the table
$query_create = mysqli_query($link, "INSERT INTO table VALUES (null, '$id', '$date')") or die ('Could not connect: ' . mysqli_error($link));
.......
.......

MySQL データベースの日付フィールドは「datetime」です。

4

4 に答える 4

7

受け取った日付は、MySQL が認識できない形式になっています。最初にそれを受け入れられる日時リテラルに変換する必要があります。その後、INSERT に渡すことができます。

この変換は、次の 2 つの方法で行うことができます。

  • 日付を「YYYY-MM-DD HH:MM:SS」として返すように JS DateTime Picker を設定できます。
  • 上記の変換は PHP で行うことができます。

どちらを選択する場合でも、データベースに保存するときは年月日の形式を使用してください。そうすれば、なぜ「08/02」が 8 月 2 日ではなく 8 月 2 日と見なされたのかを理解するのに夢中になることはありません。 2月8日。

于 2012-08-19T18:24:50.923 に答える
1

MySQL の正しい形式 (YYYY-MM-DD HH:NN:SS) を指定するには、変数を変換する必要があります。それで全部です。それにいくつかの部分文字列関数を投げることで達成します。

于 2012-08-19T18:25:02.197 に答える
1

文字列 "19.08.2012 @ 20:18" をクエリに直接書き込むと、MySQL は単純にそれを解析できません。INT、TIMESTAMP、または DATETIME のいずれかであるフィールド (列) に応じて、最初に変換する必要があります。

MySQL にはいくつかの便利な日付計算関数が付属しているため、DATETIME に固執する必要があります。

gmmktime()PHP では、 と を使用して変換できますgmdate()。作業を楽にするために、MySQL サーバーが UTC で実行されていることと、アプリケーションが日付を MySQL に挿入する前に UTC に変換していることを確認してください。

出力のために日付を取得するときは、単に適切なを使用してくださいdate_default_timezone_set()

于 2012-08-19T18:29:15.467 に答える
1

日付を mysql 日付形式に変換する必要があります。explode() 関数を使用して「.」を削除できます。最初に日付から署名し、次に mktime() 関数を使用して mysql 日付形式を作成します

$date = exolode('.', $_POST['date']);
$unixtime= mktime(0, 0, 0, $date[1], $date[0], $date[2]);
$date1 = date("H-m-d H:i:s", $unixtime);
$final_Date = strtotime($date1);
于 2014-01-16T06:55:23.990 に答える