Я посмотрел пару вопросов с похожим заголовком, но мой случай немного отличается. Я пытаюсь переместить данные из одной таблицы в другую, используя задачу laravel. Таблица, из которой я хочу скопировать данные, использует varchar
для date
, тогда как таблица, в которую я копирую, имеет тип столбца date
. Поэтому я должен преобразовать строку в действительную дату углерода перед вставкой в новую таблицу. К сожалению, в старой таблице даты смешаны в другом формате, поэтому я должен проверить и преобразовать перед вставкой, но я продолжаю получать эту ошибку при работе с конкретным строковым форматом
Exception: DateTime :: __ construct () : Не удалось проанализировать строку времени (26.02.1991) в позиции 0 (2): Неожиданный символ
Вот как выглядит мой код для преобразования строк в формат даты
if ($user->profile->date_of_birth === null) {
$dob = null;
Log::info([$user->profile->date_of_birth, $dob]);
} else if (Carbon::parse($user->profile->date_of_birth)->toDateString() == true) {
$dob = Carbon::parse($user->profile->date_of_birth)->toDateString();
Log::info([$user->profile->date_of_birth, $dob]);
} else if (Carbon::createFromFormat('d/m/Y', $user->profile->date_of_birth)->format('Y-m-d') == true) {
$formattedDate = Carbon::createFromFormat('d/m/Y', $user->profile->date_of_birth)->format('Y-m-d');
$dob = Carbon::parse($formattedDate)->toDateString();
Log::info([$user->profile->date_of_birth, $dob]);
}
Используя ремесленник laravel, я действительно могу преобразовать строку в формат даты, как показано здесь
Почему я продолжаю получать сообщение об ошибке когда я запускаю свою задачу и обнаруживаю именно эту строку?