timezone = $timezone; $this->localizedDateToUtcConverter = $localizedDateToUtcConverter ?: ObjectManager::getInstance() ->get(LocalizedDateToUtcConverterInterface::class); } /** * Define main table * * @return void */ protected function _construct() { $this->_init('admin_user_expiration', 'user_id'); } /** * Convert to UTC time. * * @param AbstractModel $userExpiration * @return $this * @throws LocalizedException */ protected function _beforeSave(AbstractModel $userExpiration) { /** @var $userExpiration UserExpirationModel */ $expiresAt = $userExpiration->getExpiresAt(); $utcValue = strtotime($expiresAt) ? $this->timezone->convertConfigTimeToUtc($expiresAt) : $this->localizedDateToUtcConverter->convertLocalizedDateToUtc($expiresAt); $userExpiration->setExpiresAt($utcValue); return $this; } /** * Convert to store time. * * @param AbstractModel $userExpiration * @return $this|AbstractDb * @throws \Exception */ protected function _afterLoad(AbstractModel $userExpiration) { /** @var $userExpiration UserExpirationModel */ if ($userExpiration->getExpiresAt()) { $date = new \DateTime($userExpiration->getExpiresAt()); $storeValue = $this->timezone->date($date); $userExpiration->setExpiresAt($storeValue->format('Y-m-d H:i:s')); } return $this; } }