Привет я борюсь с преобразованием строки:
$file = '150220';
в формате даты MySQL.
Я пробовал это
$newDate = date("Y-m-d", strtotime($file));
Но он возвращает следующий 2015-02-24 (24 сегодняшняя дата)
Увидеть: http://php.net/manual/en/datetime.createfromformat.php
Таким образом, вы можете использовать это:
$dateTime = DateTime::createFromFormat('ymd', $file);
$newDate = $dateTime->format('Y-m-d');
strtotime
это прекрасная функция. Он работает, когда вы предоставляете формат YYYY-MM-DD, но не с YY-MM-DD.
РЕДАКТИРОВАТЬ: Как сказано в комментариях, вы должны «превратить строку в действительный формат нотаций ISO8601, добавив перед 20 ‘- это понимается strtotime, как указано в документации»
Это будет работать в течение следующих 85 лет с 64-битными системами (до 2038 года на 32-битных системах)
$file = '150220';
$newDate = date("Y-m-d", strtotime("20$file"));
Вы должны быть осторожны с strtotime, потому что он возвращает false при ошибке, которая сделает date
использовал сегодняшнюю дату.
РЕДАКТИРОВАТЬ: если вы хотите -1: во-первых, этот код работает, и он объясняет, почему код op не работает, затем подумайте об использовании кнопки «Добавить комментарий». Благодарю.