created; } /** * @return \DateTime|null */ public function getCreatedUTC(){ if(is_null($this->created)) return null; return $this->getDateFromLocalToUTC($this->created); } /** * @param \DateTime $created */ public function setCreated($created) { $this->created = $created; } /** * @return \DateTime */ public function getLastEdited() { return $this->last_edited; } /** * @return \DateTime|null */ public function getLastEditedUTC(){ if(is_null($this->last_edited)) return null; return $this->getDateFromLocalToUTC($this->last_edited); } /** * @param \DateTime $value * @return \DateTime|null */ protected function getDateFromLocalToUTC(\DateTime $value){ if(is_null($value)) return null; $default_timezone = new \DateTimeZone(self::DefaultTimeZone); $utc_timezone = new \DateTimeZone("UTC"); $timestamp = $value->format('Y-m-d H:i:s'); $local_date = new \DateTime($timestamp, $default_timezone); return $local_date->setTimezone($utc_timezone); } /** * @param \DateTime $last_edited */ public function setLastEdited($last_edited) { $this->last_edited = $last_edited; } public function __construct() { $now = new \DateTime('now', new \DateTimeZone(self::DefaultTimeZone)); $this->created = $now; $this->last_edited = $now; } /** * @return QueryBuilder */ protected function createQueryBuilder(){ return Registry::getManager(self::EntityManager)->createQueryBuilder(); } /** * @param string $dql * @return Query */ protected function createQuery($dql){ return Registry::getManager(self::EntityManager)->createQuery($dql); } /** * @param string $sql * @return mixed */ protected function prepareRawSQL($sql){ return Registry::getManager(self::EntityManager)->getConnection()->prepare($sql); } /** * @param string $sql * @return mixed */ protected static function prepareRawSQLStatic($sql){ return Registry::getManager(self::EntityManager)->getConnection()->prepare($sql); } /** * @return EntityManager */ protected function getEM(){ return Registry::getManager(self::EntityManager); } /** * @return EntityManager */ protected static function getEMStatic(){ return Registry::getManager(self::EntityManager); } const EntityManager = 'model'; }