簡體   English   中英

將mysql TIME從24 HR轉換為AM / PM格式

[英]Converting mysql TIME from 24 HR to AM/PM format

我想在我的網站上顯示我的mysql表中的TIME字段,而不是顯示21:00:00等我希望在晚上8:00顯示。 我需要一個函數/代碼來執行此操作,甚至是正確方向的任何指針。 將第一個回復標記為一些代碼作為正確答復。

使用以下示例以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`

兩者都運作正常。

看看這個: http//dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

我想你會想要date_format()。

示例:DATE_FORMAT($ date,“%r”)

您還可以使用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()就是您的選擇。 但是,如果您要在網上顯示數據,我會使用UNIX_TIMESTAMP()並在PHP中進行格式化...

我的意思是......讓我們說你想改變日期和時間在頁面上的顯示方式......不會覺得“關閉”不得不修改你的SQL進行顯示調整嗎?

我的2美分

我一直試圖這樣做,並從谷歌搜索返回此頁面。 我工作時間為21:00:00;

  • 使用返回9.00PM的DATE_FORMAT(<field>,'%l.%i%p')

  • 在它周圍放一個LOWER()函數返回9.00pm

所以完整的代碼是; DATE_FORMAT(<field>,'%l.%i%p')

為我工作好......

使用DATE_FORMAT()

DATE_FORMAT(<Fieled>,'%h:%i:%s%p')

要么

DATE_FORMAT(<Fieled>, '%R')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM