我想在我的网站上显示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')
对我来说还可以。。。