1

我一直在尝试使用date_format,但据我所知,它只需要时间戳,然后以您想要显示的任何方式格式化日期。

我的问题如下,我的数据库中的日期格式如下:

 2012-05-14 // (Y-m-d)

我想将它们显示为:June 14th, 2012或最接近的格式。

PHP中是否有任何内置日期来进行这种转换?谢谢!

4

6 回答 6

3

在数据库中进行转换,因此您不必每次都通过各种字符串/二进制格式进行多次往返:

SELECT DATE_FORMAT(yourdatefield, '%M %D, %Y')

相关文档:http: //dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

其他任何事情都需要以下转换序列:

mysql native -> mysql string -> php string -> php timestamp -> php string
v.s.
mysql native -> mysql string -> php string
于 2012-06-18T21:21:38.890 回答
1

你可以尝试这样的事情:

$date_string = 2012-05-14;
$formatted_date = date('F jS, Y', strtotime($date_string));
echo $formatted_date;
于 2012-06-18T21:25:22.647 回答
0
<?php echo date('F jS, Y', strtotime('2012-06-14')); ?>
于 2012-06-18T21:21:31.057 回答
0

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

echo date("F jS, Y", strtotime($mysql_row_date_goes_here));

于 2012-06-18T21:22:43.863 回答
0

您可以使用strtotime()将日期转换为时间,然后使用date(). 或者您可以告诉您的数据库如何使用适当的 SQL 格式化日期。

于 2012-06-18T21:23:22.183 回答
0

您还可以使用 createFromFormat:

date = DateTime::createFromFormat('Y-m-d', $yourTimeString);
echo $date->format('F jS, Y');
于 2012-06-18T21:24:53.960 回答