PHP конвертировать формат даты dd/mm / yyyy => yyyy-mm-dd [дубликат]


Возможные Дубликаты:
PHP формат строки даты

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

любая помощь будет высоко оценили.

5 67

5 ответов:

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

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

$var = "20/04/2012";
echo date("Y-m-d", strtotime($var) );

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

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

Попробуйте Использовать DateTime::createFromFormat

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

выход

2012-04-24

вот еще одно решение, не использующее date (). не так умно:)

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

этого:

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

но убедитесь, что' dd/mm/yyyy ' является фактической датой.

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