Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将mysql时间从24小时转换为AM/PM格式_Php_Mysql_Datetime_Date_Time - Fatal编程技术网

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

Php 将mysql时间从24小时转换为AM/PM格式,php,mysql,datetime,date,time,Php,Mysql,Datetime,Date,Time,我想在我的网站上显示mysql表中的时间字段,但不是显示21:00:00等,而是显示晚上8:00。我需要一个函数/代码来完成这项工作,甚至需要任何指向正确方向的指针。将使用一些代码将第一个答复标记为正确的答复。请查看: 我想你会想要date_format() 示例:日期格式($DATE,“%r”)使用 日期\格式(,“%h:%i:%s%p”) 或 日期格式(,'%r')您还可以使用MYSQL的unix\u timestamp()函数选择列作为unix时间戳。然后用PHP格式化它。在我看来,这是更

我想在我的网站上显示mysql表中的时间字段,但不是显示21:00:00等,而是显示晚上8:00。我需要一个函数/代码来完成这项工作,甚至需要任何指向正确方向的指针。将使用一些代码将第一个答复标记为正确的答复。

请查看:

我想你会想要date_format()

示例:日期格式($DATE,“%r”)

使用

日期\格式(,“%h:%i:%s%p”)


日期格式(,'%r')

您还可以使用MYSQL的
unix\u timestamp()
函数选择列作为unix时间戳。然后用PHP格式化它。在我看来,这是更灵活的

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\u FORMAT()
就是一种方法。但是如果你想让数据显示在网上,我会使用
UNIX\u TIMESTAMP()
并用PHP进行格式化

我是说。。。假设您想更改日期和时间在页面上的显示方式。。。如果不得不修改SQL以进行显示调整,难道不会让人感觉“不舒服”吗


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

  • 使用返回晚上9点的
    DATE\u格式(,“%l.%i%p”)

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

所以完整的代码是<代码>日期\格式(,“%l.%i%p”)


对我来说工作正常…

使用以下示例以AM/PM格式显示日期和时间数据

SELECT DATE_FORMAT(`t`.`date_field`,'%h:%i %p') AS `date_field` FROM `table_name` AS `t`


两者都工作正常。

我有一个包含所有日期处理代码的类。在登录代码中,我只调用该类中的一个函数,该函数使用DATE\u FORMAT()格式化时间。因此,它不会真正显示在显示代码中,也不会感觉Mysql日期比unix时间戳更具可读性。+1表示“日期的格式是一个显示决定”。事实上,我同意你的看法,它将以AM/PM格式显示。但是,如果我想将AM/PM格式类型输入到mysql时间格式呢?
SELECT DATE_FORMAT(`t`.`date_field`,'%r') AS `date_field` FROM `table_name` AS `t`