Ваш ввод строки '01142012' не может быть проанализирован strtotime (), так как он недопустим, так как возвращает -1 в качестве ответа. Чтобы преобразовать это в действительную дату, вам нужно будет добавить косую черту или тире, чтобы отделить числа.
Самый простой способ - сохранить даты с пунктирными или косыми чертами, такими как «01-14-2012» или «01/14/2012», в базе данных, иначе вам придется создавать свои собственная функция для преобразования чисел в допустимую форму для strtotime ().
Для этого вы можете сделать что-то вроде этого:
function makeValidDate($date) {
$valid_date = array();
$array = str_split($date); //split characters up
foreach($array as $key => $character){
if($key==2 || $key==4){
$character = '-'.$character; //add relevant formatting to date
$valid_date[] = $character; //add this to the formatted array
}
else{
$valid_date[] = $character; // if not dashes or slashes needed add to valid array
}
}
return implode($valid_date); // return the formmatted date for use with strtotime
}
Затем вы можете сделать это, чтобы получить действительную дату:
$valid_date = makeValidDate('01142012');
echo date("d/m/Y", strtotime($valid_date));
Я не проверял это, но вы должны получить хорошее представление о том, что делать.
РЕДАКТИРОВАТЬ: идея Capi намного чище !!