0

そのため、入力テキスト フィールドを使用して、データ型が TIME のデータベース テーブルに時刻を挿入しようとしています。

挿入したい時間の形式は次のようになります。

H:MM pm// 例: 6:30 pm

問題は、午前/午後がデータベース テーブルに挿入されないことです。時と分だけです。

これを解決する方法を教えてください。サンプルコードでより良い。ありがとう。

4

7 に答える 7

7

Data TypeTIMEは時刻データ型を格納するためのものです。つまり、AM/PM はありません。データベースにデータを 24 時間形式で保存し、次のいずれかを使用して、PHP または MySQL で午前/午後の 12 時間形式にフォーマットします。

PHP:

$date = new DateTime($mysql_column['time']);
$date->format('h:i:s a');

また:

$date = date('h:i:s a', strtotime($mysql_column['time']));

またはMySQL:

SELECT DATE_FORMAT('%h:%i:%s %p', time) FROM table;
于 2012-12-04T16:27:31.007 に答える
4

を標準TIMEの形式 ( 18:30:00) として保存し、表示するときに任意の形式で保存します (DateTimeオブジェクトまたは日付関数を使用)。

MySQL は、時刻データを格納する際に追加の形式をサポートしていません。

于 2012-12-04T16:25:12.317 に答える
0

フィールドのタイプをvarcharに変更します。TIMEはそのように保存することはできません。ただし、希望どおりに保存すると、最終的に必要になる場合は、ローカライズされた結果を提供することがより困難になることに注意してください。つまり、タイムスタンプ自体を保存するのではなく、ユーザーフレンドリーな表現を保存する場合、タイムゾーンのサポートは困難になります。

編集:または、上記のコメントで指摘されているように、DATETIMEも同様に機能します。

于 2012-12-04T16:21:38.760 に答える
0

PHPでDateTimeオブジェクトを使用できます。これには、任意の形式から時間オブジェクトを作成する機能があり、そのように任意の形式で時間を出力する機能もあります

<?php
     $date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
     echo $date->format('Y-m-d');
?>

http://php.net/manual/en/datetime.createfromformat.php

于 2012-12-04T16:24:31.220 に答える
0

フィールド タイプを「VARCHAR (32)」に変更してから、PHP で時刻を書き込むのが最適です。

Example: date('m/d/y g:i:sa');

とにかく午前または午後を保存したいのはなぜですか?日付/時刻を UNIX エポック タイムスタンプとして保存する場合は、データベースではなく、プログラム内で必要に応じて日付をフォーマットできます。

Example: time(); - Store this in an INT(8) field.
         date('m/d/y g:i:sa, $time()); - Output from DB like this.
于 2012-12-04T16:25:26.730 に答える
0

日付変数の後に .ToShortTimeString() を試してください。

于 2012-12-04T16:53:06.407 に答える