10

ユーザーが Web サイトでアクションを実行した日時を MySQL データベースに保存したいと考えています。次のことを簡単にできるようにしたいと思います。

  • 日付と時刻を 1 つのフィールドとしてデータベースに格納する
  • 組み込みの PHP または MySQL 関数を使用して、アクションの日時を生成します
  • サーバーの時間に基づいて日時を保存し、ユーザーのタイムゾーンについて心配する必要はありません。
  • Order ByMySQL を照会するときの日時フィールド
  • 後で、組み込みの PHP メソッドを使用して、さまざまな形式で日時を表示します。

ここに私の質問があります:

  • MySQL ではどのデータ型を使用すればよいですか (例: timestampdatetime... )?
  • 日時を生成するには、どの方法を使用すればよいですか (例: MySQL のnow()、PHP のdate()... )?
  • さまざまなきれいな方法で日時をフォーマットするために、後でどの PHP メソッドを使用する必要がありますか (例: 2012 年 7 月 23 日、月曜日の午後 5 時 ...)。
4

4 に答える 4

5

タイムスタンプではなく、日時として保存します。

私は通常、PHP の日付関数を使用します。そのようにして、ユーザーのタイムゾーンに関連する時間を保存したい場合は、ユーザーの設定に基づいてタイムゾーンを変更するだけです。

データベースから取り出すときは、strtotime() を使用して変換します。その後、すべての date() 機能を使用して、必要に応じて表示できます。例:

echo date('F j, Y',strtotime($db_datetime)); //Displays as 'March 5, 2012'
于 2012-08-02T18:39:27.157 に答える
1

mysql データ型を null 非許容のタイムスタンプに設定し、その列に null 値を持つ行を保存すると、mysql は自動的にタイムスタンプを更新します。

もう一度読み返す場合は、php の strtotime と date オブジェクトを使用して、必要な形式に変換できます。

于 2012-08-02T18:40:34.143 に答える
1

要件に応じて日時データ型を使用する必要があります。クエリに基づいて、入力フィールドからの日付と時刻の両方を保存します。

日時を取得するには、mysql のdate_format()関数または PHP のdate()関数を使用できます。日時は、クライアントの時間ではなく、常にサーバーの時間に従って保存されます。

于 2012-08-02T18:45:53.660 に答える