Web サイトの mysql テーブルの TIME フィールドを表示したいのですが、21:00:00 などを表示するのではなく、午後 8:00 を表示したいと考えています。これを行うには関数/コード、または正しい方向へのポインターが必要です。いくつかのコードを含む最初の返信を正しい返信としてマークします。
5 に答える
これをチェックしてください: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`
また
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;
PHPでは、date()
関数を使用して、好きなようにフォーマットします。
<?php echo date('Y/m/d', $row->unixtime); ?>
SQLでフォーマットするのではなく、この方法が好きな理由はb / cです。私にとって、日付のフォーマットは表示の決定であり、(私の意見では)SQLでの日付のフォーマットは間違っていると感じます...なぜ表示ロジックをSQL?
現在 - PHP でデータを処理しておらず、アドホック クエリを実行している場合DATE_FORMAT()
は、この方法をお勧めします。しかし、データを Web 上に表示する場合はUNIX_TIMESTAMP()
、PHP で書式設定を行います...
つまり...ページに表示される日付と時刻を変更したいとしましょう...表示を微調整するためにSQLを変更する必要があるのは「気分が悪い」と思いませんか?
私の2セント
私は同じことをしようとしていて、Google 検索からこのページが返されました。私は21:00:00の時間の解決策を講じました。
DATE_FORMAT(<field>,'%l.%i%p')
9.00PMを返したものを使用9.00pm
LOWER()
を返すように関数を配置する
したがって、完全なコードは次のとおりです。DATE_FORMAT(<field>,'%l.%i%p')
私にとってはうまくいきました...