@@ -45,28 +45,28 @@ class Schedule extends \Magento\Framework\Model\AbstractModel
45
45
const STATUS_ERROR = 'error ' ;
46
46
47
47
/**
48
- * @var \Magento\Framework\Stdlib\DateTime\DateTime
48
+ * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
49
49
*/
50
- private $ dateTime ;
50
+ private $ timeZone ;
51
51
52
52
/**
53
53
* @param \Magento\Framework\Model\Context $context
54
54
* @param \Magento\Framework\Registry $registry
55
55
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
56
56
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
57
57
* @param array $data
58
- * @param \Magento\Framework\Stdlib\DateTime\DateTime |null $dateTime
58
+ * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface |null $timeZone
59
59
*/
60
60
public function __construct (
61
61
\Magento \Framework \Model \Context $ context ,
62
62
\Magento \Framework \Registry $ registry ,
63
63
\Magento \Framework \Model \ResourceModel \AbstractResource $ resource = null ,
64
64
\Magento \Framework \Data \Collection \AbstractDb $ resourceCollection = null ,
65
65
array $ data = [],
66
- \Magento \Framework \Stdlib \DateTime \DateTime $ dateTime = null
66
+ \Magento \Framework \Stdlib \DateTime \TimezoneInterface $ timeZone = null
67
67
) {
68
68
parent ::__construct ($ context , $ registry , $ resource , $ resourceCollection , $ data );
69
- $ this ->dateTime = $ dateTime ;
69
+ $ this ->timeZone = $ timeZone ;
70
70
}
71
71
72
72
/**
@@ -102,16 +102,21 @@ public function setCronExpr($expr)
102
102
*/
103
103
public function trySchedule ()
104
104
{
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
+ );
108
113
$ e = $ this ->getCronExprArr ();
109
114
110
115
if (!$ e || !$ time ) {
111
116
return false ;
112
117
}
113
118
if (!is_numeric ($ time )) {
114
- $ time = strtotime ($ time ) + $ this -> dateTime -> getGmtOffset () ;
119
+ $ time = strtotime ($ time );
115
120
}
116
121
$ match = $ this ->matchCronExpression ($ e [0 ], strftime ('%M ' , $ time ))
117
122
&& $ this ->matchCronExpression ($ e [1 ], strftime ('%H ' , $ time ))
@@ -251,4 +256,15 @@ public function tryLockJob()
251
256
}
252
257
return false ;
253
258
}
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
+ }
254
270
}
0 commit comments