How to set a date in Doctrine 2? How to set a date in Doctrine 2? symfony symfony

How to set a date in Doctrine 2?


$name = "John Alex";$birthday = "11-11-1990"; // I changed this$student = new Student();$student->setName($name);$student->setBirthday(new \DateTime($birthday)); // setting a new date instance// ...


Fields of your entities mapped as "datetime" or "date" should contain instances of DateTime.

Therefore, your setter should be type-hinted as following:

/** * Set birthday * * @param \DateTime|null $birthday */public function setBirthday(\DateTime $birthday = null){    $this->birthday = $birthday ? clone $birthday : null;}/** * Get birthday * * @return \DateTime|null  */public function getBirthday(){    return $this->birthday ? clone $this->birthday : null;}

This allows setting either null or an instance of DateTime for the birthday.

As you notice, I also clone the values for the birthday date to avoid breaking encapsulation (see Doctrine2 ORM does not save changes to a DateTime field ).

To set the birthday, you then simply do following:

$student->setBirthday(new \DateTime('11-11-90'));