我从数据库中提取各种帖子的日期。日期采用以下格式:
2009-08-12
Numeric Year - Numeric Month - Numeric Day
如何将这些日期重新格式化为更加用户友好的日期:
August 12, 2009
Numeric Month Numeric Date, Numeric Year
假设从mysql数据库获取的日期存储在名为:
的变量中$date = $row['date_selected'];
答案 0 :(得分:56)
与基于strtotime
的示例不同,这使您可以确保以正确的顺序解释月份和日期,而不管服务器上指定的区域设置如何。
$date = DateTime::createFromFormat('Y-m-d', '2009-08-12');
$output = $date->format('F j, Y');
答案 1 :(得分:49)
date("F d, Y", strtotime($input))
答案 2 :(得分:6)
$new_format = date("Your Date String", strtotime($date));
请参阅:
- http://php.net/strtotime
- http://php.net/date
基本上,如果strtotime()
可以正确读取,您可以随意重新格式化。
在这种情况下,Year - Month - Day
是正确识别的strtotime()
格式,其他格式可能不是这种情况。
答案 3 :(得分:4)
您可以考虑使用select语句在MySQL中进行日期格式化:
DATE_FORMAT(date,'%M %e, %Y') as date_selected
答案 4 :(得分:0)
<?php
echo date('F j, Y', strtotime($date));
答案 5 :(得分:0)
你可能想看一下php函数strtotime
:
http://php.net/manual/en/function.strtotime.php
它会将大量日期表示解析为Unix时间戳。
然后使用date
函数。
答案 6 :(得分:0)
像这样使用它:
// 2005年2月1日
打印日期(“F j,Y”,mktime(0,0,0,14,1,2004));
答案 7 :(得分:0)
使用strtodate或explode将日期拆分为不同的组件,然后可以使用具有相应格式字符串的日期函数:http://php.net/manual/en/function.date.php
$date = "2009-08-12";
list($year,$month,$day) = explode("-",$date);
$formattedDate = date("F d, Y", mktime(0,0,0,$month,$day,$year));
产出:“2009年8月12日”
答案 8 :(得分:0)
<?php
//Date Formatter
/*
date: date you want to convert
format: its current format ie m-d-Y, m/d/Y, Y-m-d, Y/m/d
delimS: Current delimiter ie - or / or .
delimF: The delimiter you want for the result
NOTE: this will only convert m-d-Y to Y-m-d and back
*/
function dtform($date,$format,$delimS,$delimF){
$dateFinal = '';
if($format == 'm'.$delimS.'d'.$delimS.'Y'){
$dateFinal_exp = explode($delimS,$date);
$dateFinal = $dateFinal_exp[2].$delimF.$dateFinal_exp[0].$delimF.$dateFinal_exp[1];
}else if($format == 'Y'.$delimS.'m'.$delimS.'d'){
$dateFinal_exp = explode($delimS,$date);
$dateFinal = $dateFinal_exp[1].$delimF.$dateFinal_exp[2].$delimF.$dateFinal_exp[0];
}
return $dateFinal;
}
?>