PHP Symfony2将60天添加到一个人的两天Datetime对象中

时间:2013-10-03 07:41:39

标签: php datetime symfony doctrine entity

我需要在一个人/工人的出生日期添加60年,这个人存储在数据库中,我有以下代码来定义此人以及吸气剂和制定者:

/**
 * @ORM\Entity
 * @ORM\Table(name="Worker")
 * @ORM\Entity(repositoryClass="Osd\RetireBundle\Entity\WorkerRepository")
 */
class Worker
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $idWorker;

/**
 * @ORM\Column(type="string", length=20)
 */
private $omang;

/**
 * @ORM\Column(type="string", length=100)
 */
private $workerTitle;


/**
 * @ORM\Column(type="string", length=100)
 */
private $workerName;

/**
 * @ORM\Column(type="string", length=100)
 */
private $workerSurname;

/**
 * @ORM\Column(type="date")
 */
private $birthDay;

/**
 * @ORM\Column(type="date")
 */
private $dateOfEmployment;

在这个人/工作人员中,我真的不知道在那里做是正确的,但我试图创建一个这样的方法:

    public function getRetireDate (){
   if($this->getBirthDay()) 
       return $retireYear = $this->getBirthDay()->add(new DateInterval('P60Y'));
}

我真的不知道在哪里添加方法?但是现在是在工作者里面(我是symfony的新手)。但是,当我打电话给它时,它给了我这个错误:

FatalErrorException: Error: Class 'Osd\RetireBundle\Entity\DateInterval' not found in /var/www/Org/src/Osd/RetireBundle/Entity/Worker.php line 202

任何已完成或知道如何以及在何处实现此功能的人? 关心并提前感谢您。

2 个答案:

答案 0 :(得分:1)

我想我已经解决了问题,你的答案@david真的很有帮助;现在我的方法看起来像这样:

public function getRetireYear (){
       return $this->retireYear = $this->getBirthDay()->add(new \DateInterval('P60Y'));
}

我在Worker里面有一个名为$ retireYear的私有var。而已。它运作得很好。 谢谢。

答案 1 :(得分:-1)

getRetireDate()函数位于Worker实体中。发生的错误可能是您没有DateInterval实体,或者您忘记将DateInterval实体包含在Worker实体中。