2014-10-02 3 views
0

그래서 나는이 이상한 문제를 정말로 이해하지 못합니다. 나는 단지 두 개의 datetimes, "시작 시간"과 "종료 시간"으로 물체를 수화하려고합니다. 나는 (이 예에서는 삼일) 여기DateTime Symfony2 hydrating/persisting

을 DateInterval을 추가하여 종료 시간을 얻을하는 것, 내 컨트롤러

$datenow = new \DateTime('now'); 
    var_dump($dateNow); 
    $relation->setDateAjout($dateNow); 
    $date = $dateNow; 
    $duration=(string)$flower->getDuration(); 

    $dateEnd=$date->add(new \DateInterval('P'.$duration.'D')); 
    var_dump($dateEnd); 
    $relation->setDateFin($dateEnd); 

    $em = $this->getDoctrine()->getManager(); 
    $em->persist($relation); 
    $em->flush(); 

세터 인 미세

/** 
    * Set dateAjout 
    * 
    * @param \DateTime $dateAjout 
    * @return Fleur 
    */ 
    public function setDateAjout($dateAjout) 
    { 
     $this->dateAjout = $dateAjout; 

     return $this; 
    } 


    /** 
    * Set dateFin 
    * 
    * @param \DateTime $dateFin 
    * @return Fleur 
    */ 
    public function setDateFin($dateFin) 
    { 
     $this->dateFin = $dateFin; 

     return $this; 
    } 
쇼 (쿨) 덤프 무엇 VAR

object(DateTime)[368] 
    public 'date' => string '2014-10-02 12:41:17' (length=19) 
    public 'timezone_type' => int 3 
    public 'timezone' => string 'Europe/Paris' (length=12) 

object(DateTime)[368] 
    public 'date' => string '2014-10-05 12:41:17' (length=19) 
    public 'timezone_type' => int 3 
    public 'timezone' => string 'Europe/Paris' (length=12) 

phpmyadmin 결과 (쿨하지 않음)

2014-10-05 12:41:17 
and 
2014-10-05 12:41:17 

답변

2

이 같은 날짜 시간 개체를 사용하고 다른 결과를 기대하지 못할 경우 STH를 복제 할 필요가있다. 같은 :

그는 내가 전에하지만 NP 분 대답 ^^
+0

덕분에 게시 페이지 – oligan

3

문제는 복제해야하는 것과 동일한 DateTime 개체를 참조하고 있다는 것입니다.

$date = clone $dateNow; 

http://php.net/manual/fr/language.oop5.cloning.php

+0

미안 : 그것에 대해 알고하지 않았다, 우리는 거의 같은 – oligan

+1

처음

$datenow = new \DateTime('now'); var_dump($dateNow); $relation->setDateAjout($dateNow); $date = clone $dateNow; // here is the clonening $duration=(string)$flower->getDuration(); $dateEnd=$date->add(new \DateInterval('P'.$duration.'D')); var_dump($dateEnd); $relation->setDateFin($dateEnd); $em = $this->getDoctrine()->getManager(); $em->persist($relation); $em->flush(); 

+0

일을 –