|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / vendor / magento / framework / Stdlib / DateTime / |
Filename | /home/dev2.destoffenstraat.com/vendor/magento/framework/Stdlib/DateTime/DateTimeFormatter.php |
Size | 3.07 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 07-Jan-2021 21:08 |
Last accessed | 22-Aug-2025 14:44 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Stdlib\DateTime;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Phrase;
/**
* {@inheritdoc}
*/
class DateTimeFormatter implements DateTimeFormatterInterface
{
/**
* @var bool
*/
protected $useIntlFormatObject;
/**
* @var \Magento\Framework\Locale\ResolverInterface
*/
private $localeResolver;
/**
* @param bool|null $useIntlFormatObject
*/
public function __construct(
$useIntlFormatObject = null
) {
$this->useIntlFormatObject = (null === $useIntlFormatObject)
? !defined('HHVM_VERSION')
: $useIntlFormatObject;
}
/**
* Get locale resolver
*
* @return \Magento\Framework\Locale\ResolverInterface|mixed
*/
private function getLocaleResolver()
{
if ($this->localeResolver === null) {
$this->localeResolver = \Magento\Framework\App\ObjectManager::getInstance()->get(
\Magento\Framework\Locale\ResolverInterface::class
);
}
return $this->localeResolver;
}
/**
* {@inheritdoc}
*/
public function formatObject($object, $format = null, $locale = null)
{
$locale = (null === $locale) ? $this->getLocaleResolver()->getLocale() : $locale;
if ($this->useIntlFormatObject) {
return \IntlDateFormatter::formatObject($object, $format, $locale);
}
return $this->doFormatObject($object, $format, $locale);
}
/**
* Implements what IntlDateFormatter::formatObject() is in PHP 5.5+
*
* @param \IntlCalendar|\DateTimeInterface $object
* @param string|int|array|null $format
* @param string|null $locale
* @return string
* @throws LocalizedException
*/
protected function doFormatObject($object, $format = null, $locale = null)
{
$pattern = $dateFormat = $timeFormat = $calendar = null;
if (is_array($format)) {
list($dateFormat, $timeFormat) = $format;
} elseif (is_numeric($format)) {
$dateFormat = $format;
} elseif (is_string($format) || null == $format) {
$dateFormat = $timeFormat = \IntlDateFormatter::MEDIUM;
$pattern = $format;
} else {
throw new LocalizedException(
new Phrase('The format type is invalid. Verify the format type and try again.')
);
}
$timezone = $object->getTimezone();
if ($object instanceof \IntlCalendar) {
$timezone = $timezone->toDateTimeZone();
}
$timezone = $timezone->getName();
if ($timezone === '+00:00') {
$timezone = 'UTC';
} elseif ($timezone[0] === '+' || $timezone[0] === '-') { // $timezone[0] is first symbol of string
$timezone = 'GMT' . $timezone;
}
return (new \IntlDateFormatter($locale, $dateFormat, $timeFormat, $timezone, $calendar, $pattern))
->format($object);
}
}
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Stdlib\DateTime;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Phrase;
/**
* {@inheritdoc}
*/
class DateTimeFormatter implements DateTimeFormatterInterface
{
/**
* @var bool
*/
protected $useIntlFormatObject;
/**
* @var \Magento\Framework\Locale\ResolverInterface
*/
private $localeResolver;
/**
* @param bool|null $useIntlFormatObject
*/
public function __construct(
$useIntlFormatObject = null
) {
$this->useIntlFormatObject = (null === $useIntlFormatObject)
? !defined('HHVM_VERSION')
: $useIntlFormatObject;
}
/**
* Get locale resolver
*
* @return \Magento\Framework\Locale\ResolverInterface|mixed
*/
private function getLocaleResolver()
{
if ($this->localeResolver === null) {
$this->localeResolver = \Magento\Framework\App\ObjectManager::getInstance()->get(
\Magento\Framework\Locale\ResolverInterface::class
);
}
return $this->localeResolver;
}
/**
* {@inheritdoc}
*/
public function formatObject($object, $format = null, $locale = null)
{
$locale = (null === $locale) ? $this->getLocaleResolver()->getLocale() : $locale;
if ($this->useIntlFormatObject) {
return \IntlDateFormatter::formatObject($object, $format, $locale);
}
return $this->doFormatObject($object, $format, $locale);
}
/**
* Implements what IntlDateFormatter::formatObject() is in PHP 5.5+
*
* @param \IntlCalendar|\DateTimeInterface $object
* @param string|int|array|null $format
* @param string|null $locale
* @return string
* @throws LocalizedException
*/
protected function doFormatObject($object, $format = null, $locale = null)
{
$pattern = $dateFormat = $timeFormat = $calendar = null;
if (is_array($format)) {
list($dateFormat, $timeFormat) = $format;
} elseif (is_numeric($format)) {
$dateFormat = $format;
} elseif (is_string($format) || null == $format) {
$dateFormat = $timeFormat = \IntlDateFormatter::MEDIUM;
$pattern = $format;
} else {
throw new LocalizedException(
new Phrase('The format type is invalid. Verify the format type and try again.')
);
}
$timezone = $object->getTimezone();
if ($object instanceof \IntlCalendar) {
$timezone = $timezone->toDateTimeZone();
}
$timezone = $timezone->getName();
if ($timezone === '+00:00') {
$timezone = 'UTC';
} elseif ($timezone[0] === '+' || $timezone[0] === '-') { // $timezone[0] is first symbol of string
$timezone = 'GMT' . $timezone;
}
return (new \IntlDateFormatter($locale, $dateFormat, $timeFormat, $timezone, $calendar, $pattern))
->format($object);
}
}