Skip to content

Commit 661824a

Browse files
author
Anton Evers
committed
Use \Magento\Framework\Stdlib\DateTime\TimezoneInterface to convert to date $time to Default timezone
1 parent 21f7db6 commit 661824a

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

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

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,28 +45,28 @@ class Schedule extends \Magento\Framework\Model\AbstractModel
4545
const STATUS_ERROR = 'error';
4646

4747
/**
48-
* @var \Magento\Framework\Stdlib\DateTime\DateTime
48+
* @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
4949
*/
50-
private $dateTime;
50+
private $timeZone;
5151

5252
/**
5353
* @param \Magento\Framework\Model\Context $context
5454
* @param \Magento\Framework\Registry $registry
5555
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
5656
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
5757
* @param array $data
58-
* @param \Magento\Framework\Stdlib\DateTime\DateTime|null $dateTime
58+
* @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface|null $timeZone
5959
*/
6060
public function __construct(
6161
\Magento\Framework\Model\Context $context,
6262
\Magento\Framework\Registry $registry,
6363
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
6464
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
6565
array $data = [],
66-
\Magento\Framework\Stdlib\DateTime\DateTime $dateTime = null
66+
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $timeZone = null
6767
) {
6868
parent::__construct($context, $registry, $resource, $resourceCollection, $data);
69-
$this->dateTime = $dateTime;
69+
$this->timeZone = $timeZone;
7070
}
7171

7272
/**
@@ -102,16 +102,21 @@ public function setCronExpr($expr)
102102
*/
103103
public function trySchedule()
104104
{
105-
$this->dateTime = $this->dateTime ?: \Magento\Framework\App\ObjectManager::getInstance()
106-
->get(\Magento\Framework\Stdlib\DateTime\DateTime::class);
107-
$time = $this->getScheduledAt();
105+
$time = $this->getDateTime()->formatDateTime(
106+
$this->getScheduledAt(),
107+
\IntlDateFormatter::NONE,
108+
\IntlDateFormatter::NONE,
109+
null,
110+
null,
111+
'yyyy-MM-dd HH:mm:ss'
112+
);
108113
$e = $this->getCronExprArr();
109114

110115
if (!$e || !$time) {
111116
return false;
112117
}
113118
if (!is_numeric($time)) {
114-
$time = strtotime($time) + $this->dateTime->getGmtOffset();
119+
$time = strtotime($time);
115120
}
116121
$match = $this->matchCronExpression($e[0], strftime('%M', $time))
117122
&& $this->matchCronExpression($e[1], strftime('%H', $time))
@@ -251,4 +256,15 @@ public function tryLockJob()
251256
}
252257
return false;
253258
}
259+
260+
/**
261+
* @deprecated
262+
* @return \Magento\Framework\Stdlib\DateTime\TimezoneInterface
263+
*/
264+
private function getDateTime()
265+
{
266+
$this->timeZone = $this->timeZone ?: \Magento\Framework\App\ObjectManager::getInstance()
267+
->get(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::class);
268+
return $this->timeZone;
269+
}
254270
}

0 commit comments

Comments
 (0)