Форматирование даты PHP не работает с использованием date_format ()

У меня есть поле даты, которое я вытягиваю из WordPress, где формат по умолчанию:

16/12/2016

Прошло некоторое время с тех пор, как я играл с PHP, но я помню способ форматирования дат: echo date_format($date,"[format syntax]");

Но когда я сделаю

 $date = myWPField; echo date_format($date,"F d, y"); 

Если не отображается дата.

Что мне не хватает. Это изменилось?

Поскольку ваша дата не является приемлемым форматом date_create, например, mm/dd/yy(yy) или mm-dd-yy(yy)

Используйте функцию php DateTime::createFromFormat вместо этого эта функция может определить, какой формат вы

(PHP 5> = 5.3.0, PHP 7) DateTime :: createFromFormat – date_create_from_format – Разбирает строку времени в соответствии с заданным форматом

 $date = '16/12/2016'; $show_date = DateTime::createFromFormat('d/m/Y', $date)->format('F d, y'); 

демонстрация

при создании формы формы данных используйте формат слэша, он находится в формате mm / dd / yy (yy). Таким образом, в вашем коде ваш первый 16 не разрешен по умолчанию, вы должны указать, в каком формате создать из строки.

Обратите внимание, что при создании нового объекта даты с использованием формата с косой чертой и тире (например, 02-02-2012 or 02/02/2012 ) он должен быть в mm/dd/yy(yy) или mm-dd-yy(yy) (а не британский формат dd/mm/yy )! Месяцы всегда до лет (американский стиль), в противном случае вы получите неправильную дату и можете получить ошибку, подобную той, что была выше (где PHP сбой при попытке декодирования 13-го месяца).