Функция даты в PHP конвертирует данную дату неправильно - PullRequest
0 голосов
/ 29 сентября 2018

Я читаю даты текущего года из файла csv и передаю его через следующую функцию даты.

date('d-m-Y', strtotime($value[5]))

В какой-то момент преобразованная дата показывает 2007или 2009.Ниже приведен пример в формате

Из файла (месяц, дата, год и время) -> После преобразования (dmy)

6/30/2018 10:10:11 PM -> 30-06-2018
6/30/2018 10:10:40 PM -> 30-06-2018
07-02-18 9:55 -> 18-02-2007
07-02-18 10:01 -> 18-02-2007

далее в выполнении

8/31/2018 6:34:19 PM -> 31-08-2018
8/31/2018 9:43:07 PM -> 31-08-2018
09-01-18 10:00 -> 18-01-2009
09-01-18 10:04 -> 18-01-2009 

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Я не уверен насчет основной проблемы здесь.Тем не менее, быстрое решение состоит в том, чтобы использовать функцию замены, поскольку она отлично работает с косыми чертами:

echo date('d-m-Y', strtotime(str_replace('-', '/', '07-02-18')));

Результат: Здесь

0 голосов
/ 29 сентября 2018

Вы можете использовать DateTime::createFromFormat() для установки формата ввода даты.

$dateStr = "07-02-18";
DateTime::createFromFormat('d-m-y', $dateStr)->format('d-m-Y');
// return 02/07/2018

DateTime::createFromFormat('y-m-d', $dateStr)->format('d-m-Y');
// return 02/18/2007

Проверить результат в demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...