Symfony formbuilder DateTime 显示错误的日期

Symfony formbuilder DateTime shows wrong date

我想将 date 的默认值设置为当前日期,但我得到的是 2013.01.01 而不是当前日期。

$builder->add(
        'date',
        DateTimeType::class,
        [
            'input' => 'datetime',
            'empty_data'=> new \DateTime(),
            'date_format' => 'y-M-d H:i',
            'required' => true,])

如何在提交表单时将默认日期值设置为当前日期?如果我想编辑表格,将该日期设置为我实体中的现有值?

尝试在您的实体中构建 new \DateTime()。由于您没有手动输入当前日期值,因此不需要在表单构建器中添加 'date' 字段。

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="date", type="datetime", nullable=false)
     */
    private $date;

    /**
     * YourEntity constructor.
     *
     */
    public function __construct()
    {

        $this->setdate(new \DateTime());

    }

    /**
     * Set date
     *
     * @param \DateTime $date
     *
     * @return YourEntity
     */
    public function setdate($date)
    {
        $this->date = $date;

        return $this;
    }