February 7, 2018 Javier Eguiluz

The DateTimeImmutable class was introduced in PHP 5.5. It provides the same API as DateTime , but when calling to its modify() or set*() methods, it returns a new DateTimeImmutable object to not change the original value.

In recent Symfony versions we added support for immutable dates in several parts of the framework. In Symfony 4.1 we finished a long-standing petition from the community to add support for immutable dates in Symfony Forms.

When building a form with a DateTimeType, DateType or TimeType field, set their input options to the new datetime_immutable value:

1 2 3 4 5 use Symfony\Component\Form\Extension\Core\Type\DateTimeType ; $builder -> add ( 'startsAt' , DateTimeType :: class , array ( 'input' => 'datetime_immutable' , ));