Класс Date
Расширяет класс Date, предоставленный Chronos.
Добавляет удобные методы и помощники форматирования с учётом региональных настроек.
- Cake\Chronos\MutableDate
-
Cake\I18n\Date реализует JsonSerializable использует Cake\I18n\DateFormatTrait
Краткое описание свойств
-
string|array|integerФормат, используемый при форматировании времени с помощью
Cake\I18n\Date::i18nFormat()и__toString - Формат, используемый при форматировании времени с помощью
string|array|integerCake\I18n\Date::nice() -
arrayФормат, используемый при форматировании времени с помощью
Date::timeAgoInWords()и разницы меньше, чемDate::$wordEnd - Конец указания относительного времени
string -
stringФормат, используемый при форматировании времени с помощью
Cake\I18n\Date::timeAgoInWords()и разницы больше, чемCake\I18n\Date::$wordEnd
Унаследованные свойства
Краткое описание методов
- timeAgoInWords() public
Возвращает относительное или отформатированное абсолютное время в зависимости от разницы между текущей датой и объектом.
Подробное описание методов
timeAgoInWords()исходный код public
timeAgoInWords( array $options [] )
Возвращает относительное или отформатированное абсолютное время в зависимости от разницы между текущей датой и объектом.
Параметры:
-
from=> другой объект Date, представляющий текущую дату -
format=> резервный формат, если относительное время превышает заданную длительность -
accuracy=> Указывает, насколько точно должно быть описано время (массив)- year => Формат, если годы > 0 (по умолчанию "день")
- month => Формат, если месяцы > 0 (по умолчанию "день")
- week => Формат, если недели > 0 (по умолчанию "день")
- day => Формат, если недели > 0 (по умолчанию "день")
-
end=> Конец указания относительного времени -
relativeString=> Строка, совместимая с printf, при выводе относительного времени -
absoluteString=> Строка, совместимая с printf, при выводе абсолютного времени -
timezone=> Часовой пояс пользователя, в котором должен быть отформатирован временной отметка.
Определения относительного времени могут выглядеть так:
- 3 недели, 4 дня назад
- 1 день назад
По умолчанию формат даты имеет вид дд/мм/гггг, например: 18/02/2009. Форматирование выполняется внутри с помощью i18nFormat, см. метод для допустимых строк форматирования.
Возвращаемая строка включает 'назад' или 'в' и предполагает, что вы правильно добавите слово, например, 'Опубликовано ' перед выводом функции.
ПРИМЕЧАНИЕ: Если разница составляет одну неделю или больше, то точность на самом низком уровне — день.
Параметры
- массив
$optionsнеобязательно [] - Массив параметров.
Возвращает
строкаСтрока относительного времени.
Методы, используемые из Cake\I18n\DateFormatTrait
__debugInfo()исходный код public
__debugInfo( )
Возвращает данные, которые должны отображаться при отладке этого объекта
Возвращает
массив__toString()исходный код public
__toString( )
_formatObject()исходный код protected
_formatObject( DateTime $date , string|integer|array $format , string $locale )
Возвращает переведённую и локализованную строку даты. Реализует то, что IntlDateFormatter::formatObject() делает в PHP 5.5+
Параметры
- DateTime
$date - Дата.
- строка|целое число|массив
$format - Формат.
- строка
$locale - Название локали, в которой должна отображаться дата.
Возвращает
строкаdiffFormatter()исходный код public static
diffFormatter( Cake\I18n\RelativeTimeFormatter|null $formatter null )
Получить или переопределить экземпляр форматировщика разницы.
Параметры
- Cake\I18n\RelativeTimeFormatter|null
$formatterнеобязательно null - Экземпляр форматировщика при установке.
Возвращает
Cake\I18n\RelativeTimeFormatterЭкземпляр форматировщика.
getDefaultLocale()исходный код public static
getDefaultLocale( )
Получить значение по умолчанию для локали.
Возвращает
строка|nullСтрока локали по умолчанию или null.
i18nFormat()исходный код public
i18nFormat( string|integer|null $format null , string|DateTimeZone|null $timezone null , string|null $locale null )
Возвращает отформатированную строку для этого объекта времени, используя предпочтительный формат и язык для указанной локали.
Можно указать желаемый формат для отображаемой строки. Можно передать константы IntlDateFormatter в качестве первого аргумента этой функции или передать полную строку форматирования даты ICU, как указано в следующих ресурсах: http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details.
В дополнение к константам IntlDateFormatter и строкам форматирования даты можно использовать Time::UNIX_TIMESTAMP_FORMAT для получения временной метки Unix.
Примеры
$time = new Time('2014-04-20 22:10');
$time->i18nFormat(); // outputs '4/20/14, 10:10 PM' for the en-US locale
$time->i18nFormat(\IntlDateFormatter::FULL); // Use the full date and time format
$time->i18nFormat([\IntlDateFormatter::FULL, \IntlDateFormatter::SHORT]); // Use full date but short time format
$time->i18nFormat('yyyy-MM-dd HH:mm:ss'); // outputs '2014-04-20 22:10'
$time->i18nFormat(Time::UNIX_TIMESTAMP_FORMAT); // outputs '1398031800' Если вы хотите контролировать формат по умолчанию, используемый для этого метода, вы можете изменить значение статического Time::$defaultLocale переменной и установить его на один из возможных форматов, принятых этой функцией.
Можно прочитать о доступных константах IntlDateFormatter на http://www.php.net/manual/en/class.intldateformatter.php.
Если нужно отобразить дату в другом часовом поясе, отличном от используемого для этого объекта времени, без изменения его внутреннего состояния, можно передать строку или объект часового пояса как второй параметр.
Наконец, если вам нужно использовать другую локаль для отображения этого объекта времени, передайте строку локали в качестве третьего параметра этой функции.
Примеры
$time = new Time('2014-04-20 22:10');
$time->i18nFormat(null, null, 'de-DE');
$time->i18nFormat(\IntlDateFormatter::FULL, 'Europe/Berlin', 'de-DE'); Можно контролировать локаль по умолчанию, установив статическую переменную Time::$defaultLocale на корректную строку локали. Если она пустая, то значение будет взято из конфигурации intl.default_locale ini.
Параметры
- строка|целое число|null
$formatнеобязательно null - Строка формата.
- строка|DateTimeZone|null
$timezoneнеобязательно null Строка или объект часового пояса DateTimeZone, в котором будет отображаться дата. Внутреннее состояние объекта не изменится.
- строка|null
$localeнеобязательно null - Название локали, в которой должна быть отображена дата (например, pt-BR)
Возвращает
строкаОтформатированная и переведённая строка даты
jsonSerialize()исходный код public
jsonSerialize( )
Возвращает строку, которая должна быть сериализована при преобразовании этого объекта в JSON
Возвращает
строкаnice()исходный код public
nice( string|DateTimeZone|null $timezone null , string|null $locale null )
Возвращает отформатированную строку даты для этого объекта.
Используемый формат хранится в статическом свойстве Time::niceFormat
Параметры
- строка|DateTimeZone|null
$timezoneнеобязательно null Строка или объект часового пояса DateTimeZone, в котором будет отображаться дата. Внутреннее состояние объекта не изменится.
- строка|null
$localeнеобязательно null - Название локали, в которой должна быть отображена дата (например, pt-BR)
Возвращает
строкаОтформатированная строка даты
parseDate()source public static
parseDate( string $date , string|integer|null $format null )
Возвращает новый объект Time после разбора предоставленной строки $date на основе переданного или настроенного формата даты и времени. Этот метод зависит от локали; любая строка, переданная в эту функцию, будет интерпретирована как строка, зависящая от локали.
Если $format не указан, будет использован формат wordFormat.
Если невозможно разобрать предоставленное время, будет возвращено null.
Пример:
$time = Time::parseDate('10/13/2013');
$time = Time::parseDate('13 Oct, 2013', 'dd MMM, y');
$time = Time::parseDate('13 Oct, 2013', IntlDateFormatter::SHORT); Параметры
- строка
$date - Строка даты для разбора.
- строка|целое число|null
$formatнеобязательно null - Любой формат, поддерживаемый IntlDateFormatter.
Возвращает
Cake\I18n\DateFormatTrait|nullparseDateTime()source public static
parseDateTime( string $time , string|array|null $format null )
Возвращает новый объект Time после разбора предоставленной строки времени на основе переданного или настроенного формата даты и времени. Этот метод зависит от локали; любая строка, переданная в эту функцию, будет интерпретирована как строка, зависящая от локали.
Если $format не указан, будет использован формат toString.
Если невозможно разобрать предоставленное время, будет возвращено null.
Пример:
$time = Time::parseDateTime('10/13/2013 12:54am');
$time = Time::parseDateTime('13 Oct, 2013 13:54', 'dd MMM, y H:mm');
$time = Time::parseDateTime('10/10/2015', [IntlDateFormatter::SHORT, -1]); Параметры
- строка
$time - Строка времени для разбора.
- строка|массив|null
$formatнеобязательно null - Любой формат, поддерживаемый IntlDateFormatter.
Возвращает
Cake\I18n\DateFormatTrait|nullparseTime()source public static
parseTime( string $time , string|integer|null $format null )
Возвращает новый объект Time после разбора предоставленной строки $time на основе переданного или настроенного формата даты и времени. Этот метод зависит от локали; любая строка, переданная в эту функцию, будет интерпретирована как строка, зависящая от локали.
Если $format не указан, будет использован формат IntlDateFormatter::SHORT.
Если невозможно разобрать предоставленное время, будет возвращено null.
Пример:
$time = Time::parseTime('11:23pm'); Параметры
- строка
$time - Строка времени для разбора.
- строка|целое число|null
$formatнеобязательно null - Любой формат, поддерживаемый IntlDateFormatter.
Возвращает
Cake\I18n\DateFormatTrait|nullresetToStringFormat()source public static
resetToStringFormat( )
Сбрасывает формат до значения по умолчанию при преобразовании экземпляра этого типа в строку.
setDefaultLocale()source public static
setDefaultLocale( string|null $locale null )
Устанавливает локаль по умолчанию.
Параметры
- строка|null
$localeнеобязательно null - Строка локали по умолчанию или null.
setJsonEncodeFormat()source public static
setJsonEncodeFormat( string|array|integer $format )
Устанавливает формат по умолчанию, используемый при преобразовании этого объекта в json.
Параметры
- строка|массив|целое число
$format - Формат.
setToStringFormat()source public static
setToStringFormat( string|array|integer $format )
Устанавливает формат по умолчанию, используемый при преобразовании экземпляров этого типа в строку.
Параметры
- строка|массив|целое число
$format - Формат.
Детали свойств
$_toStringFormatsource
protected static строка|массив|целое число
Формат, используемый при форматировании времени с помощью Cake\I18n\Date::i18nFormat() и __toString.
Формат должен быть либо константами форматирования из IntlDateFormatter, как описано в (http://www.php.net/manual/en/class.intldateformatter.php), либо шаблоном, как указано в (http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details).
Можно указать массив из 2 констант. В этом случае первая позиция будет использоваться для форматирования даты объекта, а вторая — для форматирования времени.
См. также
\Cake\I18n\DateFormatTrait::i18nFormat()[IntlDateFormatter::SHORT, -1]
$niceFormatsource
public static строка|массив|целое число
Формат, используемый при форматировании времени с помощью Cake\I18n\Date::nice().
Формат должен быть либо константами форматирования из IntlDateFormatter, как описано в (http://www.php.net/manual/en/class.intldateformatter.php), либо шаблоном, как указано в (http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details).
Можно указать массив из 2 констант. В этом случае первая позиция будет использоваться для форматирования даты объекта, а вторая — для форматирования времени.
См. также
\Cake\I18n\DateFormatTrait::nice()[IntlDateFormatter::MEDIUM, -1]
$wordAccuracysource
public static массив
Формат, используемый при форматировании времени с помощью Date::timeAgoInWords() и разница меньше, чем Date::$wordEnd.
См. также
\Cake\I18n\Date::timeAgoInWords()[
'year' => "day",
'month' => "day",
'week' => "day",
'day' => "day",
'hour' => "day",
'minute' => "day",
'second' => "day",
] $wordEndsource
public static строка
Конец относительного показания времени.
См. также
\Cake\I18n\Date::timeAgoInWords()'+1 month'
$wordFormatsource
public static строка
Формат, используемый при форматировании времени с помощью Cake\I18n\Date::timeAgoInWords() и разница больше, чем Cake\I18n\Date::$wordEnd.
См. также
\Cake\I18n\DateFormatTrait::parseDate()[IntlDateFormatter::SHORT, -1]
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.3/class-Cake.I18n.Date.html