Класс Time
Расширяет встроенный класс DateTime, предоставляя удобные методы и помощники по форматированию с учетом локали
- Carbon\Carbon
-
Cake\I18n\Time реализует JsonSerializable
Подробное описание методов
__constructsource public
__construct( mixed $time null , mixed $tz null )
__debugInfosource public
__debugInfo( )
Возвращает данные, которые должны отображаться при отладке этого объекта
Возвращает
arrayмассив
__toStringsource public
__toString( )
_formatObjectsource protected
_formatObject( DateTime $date , string|integer|array $format , string $locale )
Возвращает переведенную и локализованную строку даты. Реализует IntlDateFormatter::formatObject() в PHP 5.5+
Параметры
- DateTime
$date - Дата.
- string|integer|array
$format - Формат.
- string
$locale - Имя локали, в которой должна отображаться дата.
Возвращает
stringстрока
diffForHumanssource public
diffForHumans( Carbon\Carbon\Carbon $other null , array $options [] )
Возвращает разницу между этой датой и заданной датой в удобочитаемом формате.
См. Time::timeAgoInWords() для полного списка опций, которые можно передать в этот метод.
Параметры
- Carbon\Carbon\Carbon
$otherнеобязательно null - дата для сравнения
- массив
$optionsнеобязательно [] - опции, принимаемые timeAgoInWords
Возвращает
stringстрока
См. также
Cake\I18n\Time::timeAgoInWords()fromNowsource public static
fromNow( DateTime|DateTimeImmutable $datetime )
Удобный метод для получения оставшегося времени от заданного времени.
Параметры
- DateTime|DateTimeImmutable
$datetime - Дата для получения оставшегося времени.
Возвращает
DateInterval|booleanОбъект DateInterval, представляющий разницу между двумя датами, или FALSE при ошибке.
i18nFormatsource 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.
Примеры
$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::$defaultLocale и установить его на один из возможных форматов, поддерживаемых этой функцией.
Вы можете узнать о доступных константах IntlDateFormatter на http://www.php.net/manual/en/class.intldateformatter.php
Если вам нужно отобразить дату в часовом поясе, отличном от используемого для этого объекта Time, без изменения его внутреннего состояния, можно передать строку или объект часового пояса как второй параметр.
И, наконец, если вам нужно использовать другую локаль для отображения этого объекта времени, передайте строку локали в качестве третьего параметра этой функции.
Примеры
$time = new Time('2014-04-20 22:10'); $time->i18nFormat(null, null, 'de-DE'); $time->i18nFormat(\IntlDateFormatter::FULL, 'Europe/Berlin', 'de-DE');
Вы можете управлять локальностью по умолчанию, установив статическую переменную Time::$defaultLocale на корректную строку локали. Если пусто, будет использоваться значение по умолчанию из конфигурации ini intl.default_locale
Параметры
- string|integer|null
$formatнеобязательно null - Строка форматирования.
- string|DateTimeZone|null
$timezoneнеобязательно null - Строка часового пояса или объект DateTimeZone, в котором будет отображаться дата. Сохраненный часовой пояс для этого объекта не изменится.
- string|null
$localeнеобязательно null - Имя локали, в которой должна отображаться дата (например, pt-BR)
Возвращает
stringОтформатированная и переведенная строка даты
isThisMonthsource public
isThisMonth( )
Возвращает true, если этот объект представляет дату текущего месяца
Возвращает
booleanbool
isThisWeeksource public
isThisWeek( )
Возвращает true, если этот объект представляет дату текущей недели
Возвращает
booleanbool
isThisYearsource public
isThisYear( )
Возвращает true, если этот объект представляет дату текущего года
Возвращает
booleanbool
isWithinNextsource public
isWithinNext( string|integer $timeInterval )
Возвращает true, если этот экземпляр произойдёт в течение указанного интервала
Параметры
- string|integer
$timeInterval - числовое значение со временем. Пример допустимых типов: 6 часов, 2 дня, 1 минута.
Возвращает
booleanbool
jsonSerializesource public
jsonSerialize( )
Возвращает строку, которая должна быть сериализована при преобразовании этого объекта в json
Возвращает
stringстрока
Реализация
JsonSerializable::jsonSerialize() listTimezonessource public static
listTimezones( integer|string $filter null , string $country null , boolean|array $options [] )
Получить список идентификаторов часовых поясов
Параметры
- integer|string
$filterнеобязательно null - Регулярное выражение для фильтрации идентификатора или одна из констант класса DateTimeZone
- string
$countryнеобязательно null - Двухбуквенный код страны ISO 3166-1. Этот параметр используется только при установке $filter в DateTimeZone::PER_COUNTRY
- boolean|array
$optionsнеобязательно [] - Если true (значение по умолчанию), группирует список идентификаторов по основному региону. В противном случае массив с ключами
group,abbr,before, иafter. Установкаgroupиabbrк true сгруппирует результаты и добавит аббревиатуру часового пояса в значение отображения. Настройтеbeforeиafterдля настройки обертки аббревиатуры.
Возвращает
arrayСписок идентификаторов часовых поясов
С тех пор
2.2nicesource public
nice( string|DateTimeZone|null $timezone null , string|null $locale null )
Возвращает строку даты в красивом формате для этого объекта.
Используемый формат хранится в статическом свойстве Time::niceFormat
Параметры
- string|DateTimeZone|null
$timezoneнеобязательно null - Строка часового пояса или объект DateTimeZone, в котором будет отображаться дата. Сохраненный часовой пояс для этого объекта не изменится.
- string|null
$localeнеобязательно null - Имя локали, в которой должна отображаться дата (например, pt-BR)
Возвращает
stringОтформатированная строка даты
parseDatesource public static
parseDate( string $date , string|integer $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 - Строка даты для разбора.
- строка|целое число
$formatнеобязательно null - Любой формат, поддерживаемый IntlDateFormatter.
Возвращает
static|nullstatic|null
parseDateTimesource public static
parseDateTime( string $time , string|array $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 - Строка времени для разбора.
- строка|массив
$formatнеобязательно null - Любой формат, поддерживаемый IntlDateFormatter.
Возвращает
static|nullstatic|null
parseTimesource public static
parseTime( string $time , string|integer $format null )
Возвращает новый объект Time после разбора предоставленной строки $time, основываясь на переданном или настроенном формате даты и времени. Этот метод зависит от локали; любая строка, переданная этой функции, будет интерпретироваться как строка, зависящая от локали.
Если $format не указан, используется формат IntlDateFormatter::SHORT.
Если предоставленное время невозможно разобрать, возвращается null.
Пример:
$time = Time::parseDate('11:23pm');
Параметры
- строка
$time - Строка времени для разбора.
- строка|целое число
$formatнеобязательно null - Любой формат, поддерживаемый IntlDateFormatter.
Возвращает
static|nullstatic|null
resetToStringFormatsource public static
resetToStringFormat( )
Сбрасывает формат к значению по умолчанию при преобразовании экземпляра этого типа в строку.
setJsonEncodeFormatsource public static
setJsonEncodeFormat( string|array|integer $format )
Устанавливает формат по умолчанию, используемый при преобразовании этого объекта в JSON.
Параметры
- строка|массив|целое число
$format - Формат.
setToStringFormatsource public static
setToStringFormat( string|array|integer $format )
Устанавливает формат по умолчанию, используемый при преобразовании экземпляров этого типа в строку.
Параметры
- строка|массив|целое число
$format - Формат.
timeAgoInWordssource public
timeAgoInWords( array $options [] )
Возвращает относительную или отформатированную абсолютную дату в зависимости от разницы между текущим временем и этим объектом.
Параметры:
-
from=> другой объект Time, представляющий текущее время -
format=> резервный формат, если относительное время превышает заданную длительность -
accuracy=> Указывает, насколько точно дата должна быть описана (массив) - year => Формат, если годы > 0 (по умолчанию "день") - month => Формат, если месяцы > 0 (по умолчанию "день") - week => Формат, если недели > 0 (по умолчанию "день") - day => Формат, если дни > 0 (по умолчанию "час") - hour => Формат, если часы > 0 (по умолчанию "минута") - minute => Формат, если минуты > 0 (по умолчанию "минута") - second => Формат, если секунды > 0 (по умолчанию "секунда") -
end=> Конец относительного времени -
relativeString=> Строка, совместимая сprintf, при выводе относительного времени -
absoluteString=> Строка, совместимая сprintf, при выводе абсолютного времени -
timezone=> Часовой пояс пользователя, в котором должен быть отформатирован отметка времени.
Относительные даты выглядят примерно так:
- 3 недели, 4 дня назад
- 15 секунд назад
Форматирование дат по умолчанию - dd/MM/гггг, например: 18/02/2009. Форматирование выполняется внутри с помощью i18nFormat, см. метод для допустимых форматов.
Возвращаемая строка включает «назад» или «в» и предполагает, что вы добавите слово, например, «Опубликовано», перед выводом функции.
ПРИМЕЧАНИЕ: Если разница составляет одну неделю или более, то точность отображения будет днями
Параметры
- массив
$optionsнеобязательно [] - Массив параметров.
Возвращает
stringСтрока относительного времени.
toQuartersource public
toQuarter( boolean $range false )
Возвращает квартал.
Параметры
- логическое значение
$rangeнеобязательно false - Диапазон.
Возвращает
integer|array1, 2, 3 или 4 квартал года, или массив, если $range true
toUnixStringsource public
toUnixString( )
Возвращает отметку времени UNIX.
Возвращает
stringОтметка времени UNIX
wasWithinLastsource public
wasWithinLast( string|integer $timeInterval )
Возвращает true, если этот экземпляр произошел в указанном интервале.
Параметры
- строка|целое число
$timeInterval - Числовое значение с типом времени. Пример допустимых типов: 6 часов, 2 дня, 1 минута.
Возвращает
booleanbool
Краткое описание свойств
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.I18n.Time.html