对于我的项目,我需要多个具有“特殊”配置的 DateTimeTypes - 但我根本不知道如何实现这些东西(Symfony 5)。1. DateTimeType 不带秒(但仍然是 HTML5) $builder
->add('arrival', DateTimeType::class, ['label' => 'Arrival', 'input' => 'datetime_immutable', 'widget' => 'single_text']);这会呈现一个 HTML5 输入字段,其类型datetime-local正是我想要的 - 除了它仍然有几秒钟:我想删除:46 。这显然来自 symfony 自动设置的 value 选项(?):从技术上讲,这已经在 chrome 等中有效。但是,由于秒数,这在 Safari 中的客户端验证失败。如何删除秒?该format选项不能使用(因为它需要将html5设置为false)!2.当日时间类型如果您将 TimeType 与DateTime对象一起使用,日期将始终是1970-01-01完全有意义的 - 但是您如何预先选择对象的日期(例如今天)并让用户选择时间?我怎样才能做到这一点?
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
为了设置今天的默认值,我construct在我的实体对象中使用该方法。
public function __construct()
{
$this->arrival = new \DateTimeImmutable();
$this->departure = \new \DateTimeImmutable();
}
Q1 的答案:为了删除秒,只需创建一个DateTime没有秒的新对象。
public function __construct()
{
$this->arrival = \DateTimeImmutable::createFromFormat('Y-m-d H:i', date('Y-m-d H:i'));
$this->departure = \DateTimeImmutable::createFromFormat('Y-m-d H:i', date('Y-m-d H:i'));
}
//$this->arrival = new \DateTimeImmutable(date('Y-m-d H:i')); //this also works, but needs execption handling (try/catch)
Q2的答案:此问题的答案相同 - 只需在实体中预设当前日期并使用TimeType让用户选择时间。
- 1 回答
- 0 关注
- 91 浏览
添加回答
举报
0/150
提交
取消