Возможный дубликат:
Формат строки даты 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 для преобразования значения временной метки в любой формат даты, который вы хотите.