Подтвердить что ты не робот

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

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

2009-08-12

Numeric Year - Numeric Month - Numeric Day

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

August 12, 2009

Numeric Month Numeric Date, Numeric Year

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

$date = $row['date_selected'];
4b9b3361

Ответ 1

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

Ответ 2

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

$date = DateTime::createFromFormat('Y-m-d', '2009-08-12');
$output = $date->format('F j, Y');

Ответ 3

$new_format = date("Your Date String", strtotime($date));

См:
- http://php.net/strtotime
- http://php.net/date

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

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

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

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

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

Ответ 7

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

Ответ 8

Используя 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 г."

Ответ 9

<?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;
}
?>