6

私はとても混乱しています。たとえば、時間も入力する必要があるレコードを追加してから、時間テキストボックスをこの午後 6 時 30 分などの形式で入力しました。

So how could I store this data into mysql database? What data type should I use?Because there are time,datetime and timestamp datatypes. What PHP functions should I use.

まさに私が達成したかったのは、ユーザーが入力した時刻を H:MM am/pm (例: 午後 6:30) の形式で取得し、適切な方法でデータベースに保存し、このデータを正確にフォーマットして表示または取得することです。入りました。

Phpを使用してmysqlで時間を保存および取得する方法を理解してください。例を教えてください。

ウェブ上に非常に多くのリソースがあることは知っていますが、私のようなプログラミング初心者のための直接的で明確な回答が必要です。

4

6 に答える 6

22

時間を6:30 PMユーザー入力として取得する場合strtotime()は、タイムスタンプに変換するために使用できます。これにより、データベースに保存するためにフォーマットできます。

TIMEHH:MM:SS (24 時間) の時刻形式を必要とするMySQL データ型を使用します。

例:

$dbFormat = date('H:i:s', strtotime('6:30 PM'));

プロデュース:

18:30:00

これは、データベースに挿入する準備ができています。データベースから取得すると、関数を使用して MySQL で元の形式に戻すことができますDATE_FORMAT()

SELECT DATE_FORMAT(mytime, '%l:%i %p') FROM mytable

プロデュース:

午後6時30分

于 2012-12-05T08:48:01.810 に答える
4

タイムスタンプを使用して、時間を MySQL データベースに保存できます。

タイムスタンプまでの時間:

<?php
    $time = strtotime($yourTime); //yourTime is the time from your input box.
?>

タイムスタンプから時間:

<?php
    $time = date('g:i a', $yourTime); //yourTime is the time from the database.
?>

詳細については、http: //nl1.php.net/manual/en/function.date.phpおよびhttp://php.net/manual/en/function.strtotime.phpを参照してください。

編集: タイムスタンプ値を INT(11) として MySQL データベースに保存できます。

于 2012-12-05T08:46:56.090 に答える
2

mysql でタイプtimeを使用する必要がありますhttp://dev.mysql.com/doc/refman/5.0/en/time.html

時刻は次の形式で保存されます: HH:MM:SS

そしてphp変換の場合、

入れる:

$time=strtotime('6:30 pm');
$data_bd=date("H:i:s",$time);
//And then insert into mysql field

エキス:

//Extract the data from mysql
$time=strtotime('18:30:00');
$data_print=date("g:i a",$time);

プロセスを見たい場合: http://codepad.org/gNdm4YIy


詳細については:

http://es2.php.net/manual/en/function.strtotime.php

http://es2.php.net/manual/en/function.date.php

于 2012-12-05T08:52:40.507 に答える
1

あなたはそのようなことを試すことができます:

$time = '6:30pm';
$newTime = strftime('%H:%M:%S',strtotime($time));

これで、有効なmysql時刻を取得する必要があります。

ほとんどの場合、データを正しい形式でmysqlデータベースに保存するのが最善の方法です。ここに時間データしかない場合は、その列の時間形式をお勧めします。日時とタイムスタンプは、2012-12-05 09:54:32(またはタイムスタンプ1354697672)のような時間部分を持つ完全な日付がある場合にのみ使用する必要があります。

時間データをロードして00:00am/ pm形式にフォーマットし直すには、次のことを試してください。

$time = '18:30:00';
$newTime = strftime('%I:%M %p',strtotime($time));

これがお役に立てば幸いです。

于 2012-12-05T09:01:39.590 に答える
0

それはすべてアプリケーションに依存します (1 日の時間または絶対時間が必要なのか?、算術を行いたいのかなど)。

簡単な解決策は次のとおりです。

strftimeおよびstrtotime関数を使用します。

$timestamp = strtotime("6:30 pm");
$timestring = strftime("%I:%M %P", $timestamp);

これ$timestampはエポックからの秒数であり、データベースに INT として保存できます。

于 2012-12-05T08:45:49.060 に答える
0

MySQL タイムスタンプを形式 (YYYY-MM-DD HH:MM:SS) で使用します。時間を 24 時間形式で保存する必要があります。0000-00-00 18:30:00 として保存するとします。

そして、時刻を取得するときは、date('h:i A', $mysql_timestamp) を使用して 6:30 PM にフォーマットします。

それが役立つことを願っています。

于 2012-12-05T09:11:29.610 に答える