15

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

4

5 回答 5

18

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

我想你会想要 date_format()。

示例:DATE_FORMAT($date, "%r")

于 2008-10-06T02:00:08.973 回答
16

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

两者都正常工作。

于 2012-03-05T11:35:40.687 回答
3

您还可以使用 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 美分

于 2008-10-06T03:06:16.360 回答
2

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

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

  • 在它周围放置一个LOWER()函数以返回晚上 9 点

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

对我来说工作正常...

于 2009-07-10T12:00:14.793 回答
1

使用DATE_FORMAT()

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

或者

DATE_FORMAT(<字段>,'%r')

于 2008-10-06T02:19:35.690 回答