w bazie trzymam czas w formacie '2014-01-27 11:00:00', oraz jest to pole typu datetime wiec jesli w kontrolerze pobiore pojedynczy rekord korzystajac z getDoctrine()->getRepository('...')->findOneById(1); dostane obiekt z id = 1, a po pobraniu pola uzywaja get() odrazu bedzie to obiekt typu DateTime
Jesli teraz na tym obiekcie wywolam metode getStartTime() ( ktora pobiera ten czas) dostane obiekt type DateTime - co jest oczywiscie
teraz chce ten czas modyfikowac, robie to np
$newStartDate = $task->getStartDate()->add(new \DateInterval('P10D')); $task->setStartDate($newStartDate);
i jesli zrobie sobie var_dump od nowego czasu, faktycznie jest przesuniety do przodu o 10 dni i jest w porzadku, problem jest gdy chce dane updatowac w bazie,
zdaja sie nie dzialac w przypaku DateTime.
$em->persist($task) $em->flush()
Np probowalem podczas jednego update zmieniac nazwe zadania i date jednoczenie, nazwa sie zmienia, natomiast data zostaje ta sama.
Ktos cos pomoze?
Z gory dzieki, pozdro
rozwiazane
$newStartDate = $task->getStartDate()->add(new \DateInterval('P'.$task->getDaysLeft().'D')); $newStartDate = new \DateTime($newStartDate->format('Y-m-d H:i:s'));
nadal nie rozumiem jednak czemu tak to musi byc O.O