WebサイトのmysqlテーブルのTIMEフィールドを表示したいのですが、21:00:00などではなく、午後8時を表示したいと思います。これを行うための関数/コード、または正しい方向へのポインターが必要です。最初の返信を正しい返信としてコードでマークします。
これをチェックしてください: http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
Date_format()が必要だと思います。
例:DATE_FORMAT($ date、 "%r")
次の例を使用して、日付と時刻のデータをAM/PM形式で表示します。
SELECT DATE_FORMAT(`t`.`date_field`,'%h:%i %p') AS `date_field` FROM `table_name` AS `t`
OR
SELECT DATE_FORMAT(`t`.`date_field`,'%r') AS `date_field` FROM `table_name` AS `t`
どちらも正常に動作しています。
MYSQLのUNIX_TIMESTAMP()
関数を使用して、列をUNIXタイムスタンプとして選択することもできます。次に、PHPでフォーマットします。 IMOこれはより柔軟です...
_select a, b, c, UNIX_TIMESTAMP(instime) as unixtime;
_
In PHP date()
関数を使用して、好きなようにフォーマットします。
_<?php echo date('Y/m/d', $row->unixtime); ?>
_
SQLでフォーマットするのではなく、この方法が好きな理由はb/cです。私にとって、日付のフォーマットは表示の決定であり、(私の意見では)SQLで日付をフォーマットするのは間違っていると感じます...なぜ表示ロジックをSQL?
さて、PHPでデータを処理しておらず、アドホッククエリを実行している場合は、DATE_FORMAT()
が最適です。ただし、データを表示する場合はウェブ上では、UNIX_TIMESTAMP()
を使用して、PHPでフォーマットを行います...
つまり...ページでの日付と時刻の表示方法を変更したいとします...表示を微調整するためにSQLを変更する必要があるのは「オフ」だと感じませんか?
私の2セント
私は同じことをしようとしていて、このページがグーグル検索から返されました。 21:00:00の時間にソリューションを作成しました。
午後9時を返したDATE_FORMAT(<field>,'%l.%i%p')
を使用
LOWER()
関数をその周りに配置して午後9時を返します
したがって、完全なコードは次のとおりです。 DATE_FORMAT(<field>,'%l.%i%p')
私のためにうまくいった...