diff --git a/app/code/Magento/Cron/Model/Schedule.php b/app/code/Magento/Cron/Model/Schedule.php index df9586143aa9a..8477548c6a4ba 100644 --- a/app/code/Magento/Cron/Model/Schedule.php +++ b/app/code/Magento/Cron/Model/Schedule.php @@ -44,21 +44,29 @@ class Schedule extends \Magento\Framework\Model\AbstractModel const STATUS_ERROR = 'error'; + /** + * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface + */ + private $timeZone; + /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data + * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface|null $timeZone */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, - array $data = [] + array $data = [], + \Magento\Framework\Stdlib\DateTime\TimezoneInterface $timeZone = null ) { parent::__construct($context, $registry, $resource, $resourceCollection, $data); + $this->timeZone = $timeZone; } /** @@ -94,7 +102,14 @@ public function setCronExpr($expr) */ public function trySchedule() { - $time = $this->getScheduledAt(); + $time = $this->getDateTime()->formatDateTime( + $this->getScheduledAt(), + \IntlDateFormatter::NONE, + \IntlDateFormatter::NONE, + null, + null, + 'yyyy-MM-dd HH:mm:ss' + ); $e = $this->getCronExprArr(); if (!$e || !$time) { @@ -241,4 +256,15 @@ public function tryLockJob() } return false; } + + /** + * @deprecated + * @return \Magento\Framework\Stdlib\DateTime\TimezoneInterface + */ + private function getDateTime() + { + $this->timeZone = $this->timeZone ?: \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::class); + return $this->timeZone; + } } diff --git a/app/code/Magento/Cron/Observer/ProcessCronQueueObserver.php b/app/code/Magento/Cron/Observer/ProcessCronQueueObserver.php index f772a6c0c8493..b98a456a511f1 100644 --- a/app/code/Magento/Cron/Observer/ProcessCronQueueObserver.php +++ b/app/code/Magento/Cron/Observer/ProcessCronQueueObserver.php @@ -12,7 +12,7 @@ use Magento\Framework\App\State; use Magento\Framework\Console\Cli; use Magento\Framework\Event\ObserverInterface; -use \Magento\Cron\Model\Schedule; +use Magento\Cron\Model\Schedule; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects)