Thanks to Carbon maintainer @kylekatarnls you will be able to use Carbon 1.0 or Carbon 2.0 staring in Laravel 5.8. The update includes the ability to use Carbon immutable and even make your application use CarbonImmutable as the default.
⏱Thanks to some hard work by Carbon maintainer Kyle (https://t.co/kLkpb3rVBm) you will be able to use Carbon 1.0 OR 2.0 in Laravel 5.8… This allows support for CarbonImmutable. You can even configure your application to always use CarbonImmutable. ⏱ pic.twitter.com/JpKAaoABo9
— Taylor Otwell 👨🚀 (@taylorotwell) October 3, 2018
According to the laravel/framework pull request you can choose which class you want for dates “such
Chronos or simply
If you want to learn more about migrating from Carbon 1 to Carbon 2, check out the Migrate to Carbon 2 section of the official documentation. The documentation has plenty of
CarbonImmutable examples as well if you are interested in immutable date objects.
If you are curious if Carbon 2 will be supported in Laravel 5.7, only Carbon 1 is supported in Laravel 5.7. Supporting Carbon 2 required a lot of changes.
Another side-note about Carbon 2—localization has changed quite a bit and it would be worth reading the documentation to see the changes:
While Carbon 1 provided partial support and relied on third-party like IntlDateFormatter class and language packages for advanced translation, you now benefit of a wide internationalization support [in Carbon 2].
A while back I wrote about Working with Mutable and Immutable DateTime in PHP, so check it out if you need a bit of understanding in the difference in working with immutable vs. mutable dates with Carbon, Chronos, and PHP’s built-in