Я пытаюсь отформатировать даты из британского формата в ГГГГ-ММ-ДД, получая странные результаты.PHP - проблема с форматированием даты
код я использую:
echo "<br>".$_GET['trans_date'];
echo "<br>".$_GET['next_payment'];
echo "<br>".$_GET['payment_date'];
echo "<br><br>".date("Y-m-d", strtotime($_GET['trans_date']));
echo "<br>".date("Y-m-d", strtotime($_GET['next_payment']));
echo "<br>".date("Y-m-d", strtotime($_GET['payment_date']));
И я получаю следующие результаты:
19/05/2016
01/06/2016
19/05/2016
1970-01-01
2016-01-06
1970-01-01
Я ожидаю следующие результаты:
19/05/2016
01/06/2016
19/05/2016
2016-05-19
2016-01-01
2016-05-19
Может кто-нибудь, что происходит неправильно?
Спасибо,
Джон
Согласно [PHP документации] (http://www.php.net/manual/en/datetime.formats.date.php): когда PHP встречает '/' в дате с структурой 'xx/xx/xxxx', он рассматривает ее как формат США (' mm/dd/yyyy') .... либо меняет '/' на ' -' перед использованием 'strtotime()' или использовать [DateTime :: createFromFormat()] (http://nl3.php.net/manual/en/datetime.createfromformat.php) для создания объекта DateTime –
Функция strtotime ожидает получить строку, содержащую английский формат даты (мм/дд/гггг) –