English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Руководство по функциям даты и времени PHP
Функция date_interval_create_from_date_string() создает DateInterval из соответствующей части строки.
date_interval_create_from_date_string()являетсяФункция DateInterval :: createFromDateString别名. Он принимает строку, определяющую интервал, и возвращает объект DateInterval.
date_interval_create_from_date_string($time)
Номер | Параметры и описание |
---|---|
1 | Время (обязательное) Это строковое значение, которое указывает на относительный формат даты/интервала, который вы хотите использовать для вывода строки даты. |
Функция date_interval_create_from_date_string() возвращает объект DateInterval, который представляет заданный интервал.
Эта функция была最初 введена в PHP версии 5.3 и может использоваться во всех более поздних версиях.
В следующем примере демонстрируетсяdate_interval_create_from_date_string()Использование функции-
<?php $time = "3year + 3months + 26 day + 12 hours + 30 minutes + 23 seconds"; $interval = date_interval_create_from_date_string($time); print_r($interval); ?>Проверьте, посмотрите‹/›
Результат вывода
Объект DateInterval ( [y] => 3 [m] => 3 [d] => 26 [h] => 12 [i] => 30 [s] => 23 [f] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 )
В этой функции вы не можете использовать строковое представление ISO8601 (например, "P12M") для парсинга таких интервалов, вам нужно использоватьDateIntervalконструктор.
В следующем примере мы используем строковое представление ISO8601 для создания интервала-
<?php $time1 = new DateInterval('P25DP8MP9Y'); print_r($time1); $time2 = new DateInterval('PT10H'); print_r($time2); ?>Проверьте, посмотрите‹/›
Результат вывода
Объект DateInterval ( [y] => 9 [m] => 8 [d] => 25 [h] => 0 [i] => 0 [s] => 0 [f] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 ) Объект DateInterval ( [y] => 0 [m] => 0 [d] => 0 [h] => 10 [i] => 0 [s] => 0 [f] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 )
В следующем примере добавляем временной интервал к текущей дате и выводим результат. Здесь мы используемdate_interval_create_from_date_stringФункция для вычисления интервала времени. -
<?php $date = date_create(); $str = "12year 3months 14days"; $interval = date_interval_create_from_date_string($str); $res1 = date_add($date, $interval); print("Дата после ".$str); print(": ".date_format($res1, 'Y-m-d')); ?>Проверьте, посмотрите‹/›
Результат вывода
Дата после 12лет 3месяца 14дней: 2032-08-28
В следующем примере используются различные строки ISO8601 и их соответствующие обычные строки для создания интервалов времени-
<?php print(new DateInterval('P12D')."\n"); print(DateInterval::createFromDateString('12 day')."\n"); print(new DateInterval('P7')."\n"); print(DateInterval::createFromDateString('7 months')."\n"); print(new DateInterval('P12Y')."\n"); print(DateInterval::createFromDateString('12 years')."\n"); print(new DateInterval('PT9H')."\n"); print(DateInterval::createFromDateString('9 hours')."\n"); print(new DateInterval('PT19i')."\n"); print(DateInterval::createFromDateString('19 minutes')."\n"); print(new DateInterval('PT45S')."\n"); print(DateInterval::createFromDateString('45 seconds')."\n"); ?>