Как переформатировать дату в PHP?

Я собираю даты различных сообщений из базы данных. Даты находятся в следующем формате:

2009-08-12 Numeric Year - Numeric Month - Numeric Day 

Как я могу переформатировать эти даты в нечто более удобное, например:

 August 12, 2009 Numeric Month Numeric Date, Numeric Year 

Предполагая, что дата, полученная из базы данных mysql, хранится в переменной, называемой:

 $date = $row['date_selected']; 

Solutions Collecting From Web of "Как переформатировать дату в PHP?"

date("F d, Y", strtotime($input))

В отличие от strtotime основе strtotime , это позволяет гарантировать, что месяц и день будут интерпретироваться в правильном порядке независимо от настроек локали, заданных на сервере.

 $date = DateTime::createFromFormat('Ym-d', '2009-08-12'); $output = $date->format('F j, Y'); 
 $new_format = date("Your Date String", strtotime($date)); 

Видеть:
http://php.net/strtotime
http://php.net/date

В принципе, если strtotime() может прочитать его правильно, вы можете переформатировать его в любом случае.

В этом случае Year - Month - Day – это правильно распознанный strtotime() , это может быть не так для других форматов.

Вы можете рассмотреть возможность форматирования даты в MySQL с помощью оператора select:

 DATE_FORMAT(date,'%M %e, %Y') as date_selected 

http://www.w3schools.com/sql/func_date_format.asp

 <?php echo date('F j, Y', strtotime($date)); 

Вы можете посмотреть на функцию php strtotime :

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

Он будет анализировать большое количество представлений даты в метке времени Unix.

Затем используйте функцию date .

Используйте его так:
// 1 февраля 2005 г.
дата печати («F j, Y», mktime (0,0,0,14,1,2004));

Используя 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)); 

Выходы: «12 августа 2009 г.»

 <?php //Date Formatter /* date: date you want to convert format: its current format ie mdY, m/d/Y, Ymd, Y/m/d delimS: Current delimiter ie - or / or . delimF: The delimiter you want for the result NOTE: this will only convert mdY to Ymd 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; } ?>