将mysql TIME从24 HR转换为AM / PM格式

时间:2008-10-06 01:51:44

标签: php mysql datetime date time

我想在我的网站上显示我的mysql表中的TIME字段,而不是显示21:00:00等我希望在晚上8:00显示。我需要一个函数/代码来执行此操作,甚至是正确方向的任何指针。将第一个回复标记为正确的回复。

5 个答案:

答案 0 :(得分:12)

检查出来:http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

我想你想要date_format()。

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

答案 1 :(得分:12)

显示日期&采用以下示例的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`

两者都正常运作。

答案 2 :(得分:2)

您还可以使用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,对我来说,日期的格式是显示决定&amp; (在我看来)格式化SQL中的日期感觉不对...为什么将显示逻辑放在SQL中?

现在 - 如果您不是在处理PHP中的数据并且正在进行临时查询,那么DATE_FORMAT()就是可行的方法。但是,如果您要在网络上显示数据,我会选择UNIX_TIMESTAMP()并在PHP中进行格式化...

我的意思是......让我们说你要改变约会的日期和方式。时间显示在页面上...不会觉得“关闭”必须修改SQL以进行显示调整吗?

我的2美分

答案 3 :(得分:1)

我一直在努力做同样的事情,并从Google搜索返回此页面。我的工作时间是21:00:00;

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

  • 在其周围放置LOWER()函数以返回9.00pm

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

为我工作好......

答案 4 :(得分:0)

使用DATE_FORMAT()

DATE_FORMAT(&lt; Fieled&gt;,'%h:%i:%s%p')

DATE_FORMAT(小于Fieled&GT;, '%R')