как поменять годы на месяцы используя углерод? - PullRequest
0 голосов
/ 17 мая 2018

Я только начал использовать Carbon, я смог заставить программу работать, вычисляя годы от заданной даты. Но теперь я хочу сделать формат подсчета месяцев, это мой код:

public function getAgeAttribute() {   
    return Carbon::parse($this->attributes['emp_birth_date'])->age;
}

Я пытался использовать код:

->format('months');

но получил ошибку, я не знаю, где это работает. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 17 мая 2018

Нет встроенного метода для определения возраста в месяцах, но решить его довольно просто:

$ageInYears = \Carbon\Carbon::parse($birthday)->age;
$ageInMonths = $ageInYears * 12;

Это не идеально, поскольку возраст не возвращается в виде десятичной дроби, поэтому 10 лет могут быть где-то между 120 и 131 месяцами.

Если вы хотите что-то более точное, вы можете использовать diffInMonths примерно так:

$ageInMonths = \Carbon\Carbon::now()->diffInMonths(\Carbon\Carbon::parse($birthday));

Кроме того, ->format("months"); недопустим, поскольку "months" не является допустимым форматом даты PHP. Кроме того, ->format("m") (что является правильным значением) не будет работать на ->age, поскольку ->age возвращает int, а не Carbon дату.

См. http://php.net/manual/en/function.date.php для всех доступных опций форматирования даты PHP.

...