5
5
*/
6
6
namespace Magento \Framework \Stdlib \DateTime ;
7
7
8
- use \Magento \Framework \Exception \LocalizedException ;
8
+ use Magento \Framework \App \Config \ScopeConfigInterface ;
9
+ use Magento \Framework \App \ScopeInterface ;
10
+ use Magento \Framework \App \ScopeResolverInterface ;
11
+ use Magento \Framework \Exception \LocalizedException ;
12
+ use Magento \Framework \Locale \ResolverInterface ;
9
13
use Magento \Framework \Phrase ;
14
+ use Magento \Framework \Stdlib \DateTime ;
10
15
11
16
/**
12
17
* Timezone library
18
+ *
19
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
13
20
*/
14
21
class Timezone implements TimezoneInterface
15
22
{
@@ -29,12 +36,12 @@ class Timezone implements TimezoneInterface
29
36
protected $ _scopeType ;
30
37
31
38
/**
32
- * @var \Magento\Framework\App\ ScopeResolverInterface
39
+ * @var ScopeResolverInterface
33
40
*/
34
41
protected $ _scopeResolver ;
35
42
36
43
/**
37
- * @var \Magento\Framework\Stdlib\ DateTime
44
+ * @var DateTime
38
45
*/
39
46
protected $ _dateTime ;
40
47
@@ -44,28 +51,28 @@ class Timezone implements TimezoneInterface
44
51
protected $ _defaultTimezonePath ;
45
52
46
53
/**
47
- * @var \Magento\Framework\App\Config\ ScopeConfigInterface
54
+ * @var ScopeConfigInterface
48
55
*/
49
56
protected $ _scopeConfig ;
50
57
51
58
/**
52
- * @var \Magento\Framework\Locale\ ResolverInterface
59
+ * @var ResolverInterface
53
60
*/
54
61
protected $ _localeResolver ;
55
62
56
63
/**
57
- * @param \Magento\Framework\App\ ScopeResolverInterface $scopeResolver
58
- * @param \Magento\Framework\Locale\ ResolverInterface $localeResolver
59
- * @param \Magento\Framework\Stdlib\ DateTime $dateTime
60
- * @param \Magento\Framework\App\Config\ ScopeConfigInterface $scopeConfig
64
+ * @param ScopeResolverInterface $scopeResolver
65
+ * @param ResolverInterface $localeResolver
66
+ * @param DateTime $dateTime
67
+ * @param ScopeConfigInterface $scopeConfig
61
68
* @param string $scopeType
62
69
* @param string $defaultTimezonePath
63
70
*/
64
71
public function __construct (
65
- \ Magento \ Framework \ App \ ScopeResolverInterface $ scopeResolver ,
66
- \ Magento \ Framework \ Locale \ ResolverInterface $ localeResolver ,
67
- \ Magento \ Framework \ Stdlib \ DateTime $ dateTime ,
68
- \ Magento \ Framework \ App \ Config \ ScopeConfigInterface $ scopeConfig ,
72
+ ScopeResolverInterface $ scopeResolver ,
73
+ ResolverInterface $ localeResolver ,
74
+ DateTime $ dateTime ,
75
+ ScopeConfigInterface $ scopeConfig ,
69
76
$ scopeType ,
70
77
$ defaultTimezonePath
71
78
) {
@@ -174,6 +181,8 @@ public function date($date = null, $locale = null, $useTimezone = true, $include
174
181
$ timeType ,
175
182
new \DateTimeZone ($ timezone )
176
183
);
184
+
185
+ $ date = $ this ->appendTimeIfNeeded ($ date , $ includeTime );
177
186
$ date = $ formatter ->parse ($ date ) ?: (new \DateTime ($ date ))->getTimestamp ();
178
187
break ;
179
188
}
@@ -226,7 +235,7 @@ public function scopeTimeStamp($scope = null)
226
235
*/
227
236
public function isScopeDateInInterval ($ scope , $ dateFrom = null , $ dateTo = null )
228
237
{
229
- if (!$ scope instanceof \ Magento \ Framework \ App \ ScopeInterface) {
238
+ if (!$ scope instanceof ScopeInterface) {
230
239
$ scope = $ this ->_scopeResolver ->getScope ($ scope );
231
240
}
232
241
@@ -318,4 +327,19 @@ public function convertConfigTimeToUtc($date, $format = 'Y-m-d H:i:s')
318
327
319
328
return $ date ->format ($ format );
320
329
}
330
+
331
+ /**
332
+ * Retrieve date with time
333
+ *
334
+ * @param string $date
335
+ * @param bool $includeTime
336
+ * @return string
337
+ */
338
+ private function appendTimeIfNeeded ($ date , $ includeTime )
339
+ {
340
+ if ($ includeTime && !preg_match ('/\d{1}:\d{2}/ ' , $ date )) {
341
+ $ date .= " 0:00am " ;
342
+ }
343
+ return $ date ;
344
+ }
321
345
}
0 commit comments