Carbon('последний день октября')->modify('+1 месяц') неожиданный результат

Может ли кто-нибудь объяснить мне, почему (new Carbon('last day of October'))->modify('+1 month'); возвращается

 Carbon {#326
    +"date": "2016-12-01 00:00:00.000000"
    +"timezone_type": 3
    +"timezone": "Europe/"
  }

То же самое с modify('-1 month'). Может ли быть так, что при изменении месяца Carbon вычитает или добавляет количество дней в целевом месяце? Итак, когда мы добавляем «1 месяц» к последнему дню октября, Carbon добавляет 31 день к 31 октября и возвращает 1 декабря...


person ITDesigns.eu    schedule 08.11.2016    source источник
comment
Попробуйте ->addMonth(1) или ->subMonth(1).   -  person Xorifelse    schedule 08.11.2016
comment
Я не могу, так как 'last day of October' и '+1 month' генерируются в другом месте и могут быть '+12 days', '-4 years' с 'first day of this month' и т. д.   -  person ITDesigns.eu    schedule 08.11.2016


Ответы (1)


Кажется, в библиотеке Carbon все еще есть ошибки. Вы можете попробовать этот способ.

Carbon::create()->endOfMonth()->month(10)->modify('+1 month')

Вы можете проверить результат на странице http://phpio.net/tools/carbon.

person Manh Nguyen    schedule 13.11.2016