Возможный дубликат:
Формат строки даты PHP
Я пытаюсь преобразовать дату из dd/mm/yyyy => yyyy-mm-dd . У меня есть функция mktime () и другие функции, но я не могу заставить ее работать. Мне удалось explode исходную дату, используя '/' в качестве разделителя, но у меня нет успеха в изменении формата и замене '/' на '-' .
Любая помощь будет оценена.
Даты в форматах
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 для преобразования значения временной метки в любой формат даты, который вы хотите.