mysql — PHP преобразование даты ГГММДД в ​​гггг-мм-дд

Привет я борюсь с преобразованием строки:

$file = '150220';

в формате даты MySQL.

Я пробовал это

$newDate = date("Y-m-d", strtotime($file));

Но он возвращает следующий 2015-02-24 (24 сегодняшняя дата)

-2

Решение

Увидеть: http://php.net/manual/en/datetime.createfromformat.php

Таким образом, вы можете использовать это:

$dateTime = DateTime::createFromFormat('ymd', $file);
$newDate = $dateTime->format('Y-m-d');
4

Другие решения

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 не работает, затем подумайте об использовании кнопки «Добавить комментарий». Благодарю.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector