31

假设在我的 mysql 数据库中我有一个时间戳2013-09-30 01:16:06,并且可以说这个变量是$ts.

我怎样才能输出这个以显示更像September 30th, 2013

4

7 回答 7

61
$timestamp = "2013-09-30 01:16:06";
echo date("F jS, Y", strtotime($timestamp)); //September 30th, 2013

注意使用S来获取当天的英文序数后缀。
由于您已经在使用strtotime,如果您需要当前时间的人类可读数据,您可以使用关键字“ now ”,如strtotime("now")

相关来源

于 2013-10-03T06:39:06.610 回答
23

用于strtotime()将该字符串转换为 Unix 时间戳,然后使用该date()函数以您想要的方式显示它。

echo date("F j, Y, g:i a",strtotime($ts)); 

参考:

http://www.php.net/manual/en/function.strtotime.php

http://www.php.net/manual/en/function.date.php

于 2013-10-03T06:37:51.123 回答
4

我认为那里甚至不需要 php。检查 MySQLDATE_FORMAT()功能。

例子:

SELECT DATE_FORMAT('2013-09-30 01:16:06', '%M %D, %Y %H:%i:%s') as `readable`;

结果:

September 30th, 2013 01:16:06

实际使用:

SELECT
    DATE_FORMAT(`date_column`, '%M %D, %Y %H:%i:%s') as `readable`
FROM
    `your_table`;
于 2013-10-03T06:48:17.520 回答
3
echo date("F d Y",strtotime("2013-09-30 01:16:06"))
于 2013-10-03T06:39:40.553 回答
1

就像是:

<?php
$date = '2013-09-30 01:16:06';
$convertDate = date('F jS, Y h:i:s', strtotime($date));
echo $convertDate;
?>
于 2013-10-03T06:37:51.823 回答
1

mysql查询

 select UNIX_TIMESTAMP(datetime_field) as datetime_field from table;

PHP

echo date("F d Y", $datetime_field )
于 2013-10-03T06:46:44.670 回答
-1

使用diffForHumans功能:

Carbon\Carbon::parse($ts)->diffForHumans()
于 2019-05-25T19:07:15.803 回答