Im имеет дату в этом формате на листе Excel 03-Dec-10. Таким образом, он несовместим при вставке его в базу данных. Как конвертировать дату в приемлемый формат.
Эксперты помогут
Хотя ответ Джона верен, вот еще один вариант:
$input = '03-Dec-10'; $date = date('Ymd', strtotime($input));
$input = '03-Dec-10'; $date = DateTime::createFromFormat('dM-y', $input); echo $date->format('Ymd'); // or possibly 'Ymd'
Это приведет к выходу 20101203
, который, по-видимому, вы хотите. Если это не совсем то, что вам нужно, посмотрите здесь .
Вы также можете сделать обратное:
$input = '20101203'; $date = DateTime::createFromFormat('Ymd', $input); echo $date->format('dM-y');
Если вы делаете это из самого Excel, вы можете поместить эту формулу в другую колонку
= ТЕКСТ (A2, "YYYYmmdd")
Затем скопируйте. Это дает совместимую 8-значную дату.
Для более общего подхода вы всегда можете сбрасывать свой текущий формат в строку, например, как у вас есть, и использовать строковые операции для подстроки и реорганизации. Я знаю, что MySQL принимает строковые значения для полей DATETIME
.
$day = substr($input, 0, 2); $month = substr($input, 2, 3); switch($month){ case "Jan": $month = "01"; break; ... }
в$day = substr($input, 0, 2); $month = substr($input, 2, 3); switch($month){ case "Jan": $month = "01"; break; ... }