Contributed by
Valentin Udaltsov
in #25582.
DateTimeImmutable 类 打从 PHP 5.5 引入。它提供了和 DateTime
相同的API,但当它调用其 modify()
或 set*()
方法时,它返回的是一个全新的 DateTimeImmutable
对象,不会改变原始值。
在近期的 Symfony 版本中,我们在框架的某几个部分添加了对 immutable 日期的支持。 在 Symfony 4.1 中我们完成了一个在社区中被长久期待的 在 Symfony 表单中添加对 immutable 日期的支持。
当使用 DateTimeType, DateType 或 TimeType 字段类型来构建表单时,把它们的 input
选项设置成全新的 datetime_immutable
值:
1 2 3 4 5 | use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
$builder->add('startsAt', DateTimeType::class, array(
'input' => 'datetime_immutable',
)); |
现在你就可以把一个 DateTimeImmutable
对象设置为该字段的值了。当表单被提交且有效时,你会得到一个 DateTimeImmutable
对象以及被用户设置的新值。