PHP формат даты даты dd / mm / yyyy => yyyy-mm-dd

Возможный дубликат:
Формат строки даты PHP

Я пытаюсь преобразовать дату из dd/mm/yyyy => yyyy-mm-dd . У меня есть функция mktime () и другие функции, но я не могу заставить ее работать. Мне удалось explode исходную дату, используя '/' в качестве разделителя, но у меня нет успеха в изменении формата и замене '/' на '-' .

Любая помощь будет оценена.

Solutions Collecting From Web of "PHP формат даты даты dd / mm / yyyy => yyyy-mm-dd"

Даты в форматах m/d/y или dmy неоднозначно, глядя на разделитель между различными компонентами: если разделитель является косой чертой ( / ), то предполагается, что американский m/d/y ; тогда как если разделитель является тире ( - ) или точкой ( . ), тогда предполагается европейский формат dmy . Подробнее здесь .

Используйте функцию даты по умолчанию.

 $var = "20/04/2012"; echo date("Ymd", strtotime($var) ); 

EDIT Я только что протестировал его, и почему-то PHP не работает с форматом dd / mm / yyyy. Вот еще одно решение.

 $var = '20/04/2012'; $date = str_replace('/', '-', $var); echo date('Ym-d', strtotime($date)); 

Попробуйте использовать DateTime::createFromFormat http://www.php.net/manual/en/datetime.createfromformat.php

 $date = DateTime::createFromFormat('d/m/Y', "24/04/2012"); echo $date->format('Ym-d'); 

Вывод

 2012-04-24 

Вот еще одно решение, не использующее date (). не очень умный 🙂

 $var = '20/04/2012'; echo implode("-", array_reverse(explode("/", $var))); 

Сделай это:

 date('Ym-d', strtotime('dd/mm/yyyy')); 

Но убедитесь, что «dd / mm / yyyy» – фактическая дата.

Я хотел бы отметить, что было бы лучше, если бы программирование использовало Timestamp, чем фактическая дата для представления времени, вы можете использовать PHP для преобразования значения временной метки в любой формат даты, который вы хотите.