Carbon Updates Coming to Laravel 5.8

Tutorials

October 11th, 2018

laravel-5.8-carbon-2.png

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 CarbonImmutable, Chronos or simply DateTime.”

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 DatetimeImmutable class.

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.