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



我想在我的网站上显示mysql表中的TIME字段,但我不想显示21:00:00等。我想显示8:00 PM。我需要一个函数/代码来实现这一点,甚至需要任何指向正确方向的指针。将使用某些代码将第一个答复标记为正确答复。

看看这个: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中使用CCD_ 2函数&你可以随心所欲地格式化它。

<?php echo date('Y/m/d', $row->unixtime); ?>

我喜欢这种方法而不是在SQL中格式化它的原因是b/c,对我来说,日期的格式是一个显示决策&(在我看来)在SQL中格式化日期感觉不对。。。为什么要在SQL中放入显示逻辑?

现在,如果您不是在PHP中处理数据,而是在进行即席查询,那么DATE_FORMAT()就是您的选择。但如果你想让数据显示在网上,我会选择UNIX_TIMESTAMP(),并用PHP进行格式化。。。

我的意思是。。。比方说你想改变日期的方式&时间显示在页面上。。。必须修改SQL以进行显示调整,这不是感觉很"不舒服"吗?

我的2美分

使用DATE_FORMAT()

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

DATE_FORMAT(<Fiered>,'%r')

我一直在尝试做同样的事情,并从谷歌搜索中返回了这个页面。我为21:00:00的时间制定了一个解决方案;

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

  • 在其周围放置LOWER()函数以返回晚上9点的

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

对我来说还可以。。。

相关内容

  • 没有找到相关文章

最新更新