我一直试图使用date_format
,但据我所知,它只需要时间戳,然后以任何想要显示它的方式格式化日期。,如何格式化从数据库收集的日期?
我的问题是下面的,在我的数据库日期是以下格式:
2012-05-14 // (Y-m-d)
,我想将其显示为:June 14th, 2012
或最近的格式了这一点。
PHP中是否有任何内置日期来进行这种转换? 谢谢!
我一直试图使用date_format
,但据我所知,它只需要时间戳,然后以任何想要显示它的方式格式化日期。,如何格式化从数据库收集的日期?
我的问题是下面的,在我的数据库日期是以下格式:
2012-05-14 // (Y-m-d)
,我想将其显示为:June 14th, 2012
或最近的格式了这一点。
PHP中是否有任何内置日期来进行这种转换? 谢谢!
执行转型在数据库中,这样你就不会通过各种串/二进制格式每次做多次往返:
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
<?php echo date('F jS, Y', strtotime('2012-06-14')); ?>
http://php.net/manual/en/function.date.php
echo date("F jS, Y", strtotime($mysql_row_date_goes_here));
您可以使用strtotime()
至今转换成时间,然后使用date()
。或者您可以告诉您的数据库如何使用正确的SQL格式化日期。
您还可以使用createFromFormat:
date = DateTime::createFromFormat('Y-m-d', $yourTimeString);
echo $date->format('F jS, Y');
你可以尝试这样的事:
$date_string = 2012-05-14;
$formatted_date = date('F jS, Y', strtotime($date_string));
echo $formatted_date;