Дата разбора углерода Laravel

У меня есть json с датой пользователей. Даты могут быть в формате:

"bdate": "25.10",
"bdate": "8.7.1990"
"bdate": "13.10.1984"
"bdate": "7.3"

Как я могу глобально анализировать эти даты в углероде?

Когда я использую:

Carbon::parse($people->bdate)

Я получаю сообщение об ошибке:

DateTime::__construct(): Failed to parse time string (25.10) at position 0 (2): Unexpected character

"bdate": "25.10", что означает этот формат, я имею в виду, как бы вы преобразовали его в обычную дату?
ArtisticPhoenix 03.03.2019 11:20

"дата": "25.10" означает: 25 октября.

Mafys Grif 03.03.2019 11:22

Вот я и подумал... вообще, какой это год? Вы не можете назначить свидание без года. Если я не могу понять это (как человек), неудивительно, что простой фрагмент кода тоже не может.

ArtisticPhoenix 03.03.2019 11:27

@ArtisticPhoenix, а что я могу сделать? Мне нужно получить дату рождения, но служба присылает мне даты, где год может быть, а год может быть нет.

Mafys Grif 03.03.2019 11:30

@MafysGrif попробуйте \Carbon\Carbon::createFromFormat('d.m', $date)->day;, хотя это требует некоторой работы, чтобы соответствовать всему вашему делу.

Sohel0415 03.03.2019 12:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
3 160
2

Ответы 2

Вероятно, есть более простое решение, проверил это, и оно работает.

    $date = [null, null, null];
    $data = explode('.', "25.10");

    foreach ($data as $key => $da) {
        $date[$key] = $da;
    }

    $date = Carbon::createFromDate($date[2], $date[1], $date[0]);

Это может быть еще одним решением вашей проблемы.

function getBirthDateInCarbon($date){

    $count = substr_count($date,'.');
    if ($count==1){
        return \Carbon\Carbon::createFromFormat('d.m', $date);//default year will be current year
    }
    return \Carbon\Carbon::createFromFormat('d.m.Y', $date);
}

Другие вопросы по теме