config = $config; $this->entityManager = $entityManager; } public function run() { if (!$this->config->get('adminNotifications') || !$this->config->get('adminNotificationsNewVersion')) { return true; } $job = $this->entityManager->getEntity('Job'); $job->set([ 'name' => 'Check for New Version (job)', 'serviceName' => 'AdminNotifications', 'methodName' => 'jobCheckNewVersion', 'executeTime' => $this->getRunTime(), ]); $this->entityManager->saveEntity($job); return true; } protected function getRunTime() { $hour = rand(0, 4); $minute = rand(0, 59); $nextDay = new \DateTime('+ 1 day'); $time = $nextDay->format('Y-m-d') . ' ' . $hour . ':' . $minute . ':00'; $timeZone = $this->config->get('timeZone'); if (empty($timeZone)) { $timeZone = 'UTC'; } $datetime = new \DateTime($time, new \DateTimeZone($timeZone)); return $datetime->setTimezone(new \DateTimeZone('UTC'))->format('Y-m-d H:i:s'); } }