Skip to content

Commit fe0e347

Browse files
author
Anton Evers
committed
Test cron expressions against localized time
1 parent 322e7a4 commit fe0e347

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

app/code/Magento/Cron/Model/Schedule.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,30 @@ class Schedule extends \Magento\Framework\Model\AbstractModel
4444

4545
const STATUS_ERROR = 'error';
4646

47+
/**
48+
* @var \Magento\Framework\Stdlib\DateTime\DateTime
49+
*/
50+
private $dateTime;
51+
4752
/**
4853
* @param \Magento\Framework\Model\Context $context
4954
* @param \Magento\Framework\Registry $registry
5055
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
5156
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
5257
* @param array $data
58+
* @param \Magento\Framework\Stdlib\DateTime\DateTime|null $dateTime
5359
*/
5460
public function __construct(
5561
\Magento\Framework\Model\Context $context,
5662
\Magento\Framework\Registry $registry,
5763
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
5864
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
59-
array $data = []
65+
array $data = [],
66+
\Magento\Framework\Stdlib\DateTime\DateTime $dateTime = null
6067
) {
6168
parent::__construct($context, $registry, $resource, $resourceCollection, $data);
69+
$this->dateTime = $dateTime ?: \Magento\Framework\App\ObjectManager::getInstance()
70+
->get(\Magento\Framework\Stdlib\DateTime\DateTime::class);
6271
}
6372

6473
/**
@@ -101,7 +110,7 @@ public function trySchedule()
101110
return false;
102111
}
103112
if (!is_numeric($time)) {
104-
$time = strtotime($time);
113+
$time = strtotime($time) + $this->dateTime->getGmtOffset();
105114
}
106115
$match = $this->matchCronExpression($e[0], strftime('%M', $time))
107116
&& $this->matchCronExpression($e[1], strftime('%H', $time))

0 commit comments

Comments
 (0)