English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Основной курс

PHP Уровень продвинутый

PHP & MySQL

PHP Референс Мануал

Примеры использования и примеры функции date_interval_create_from_date_string() в PHP

Руководство по функциям даты и времени 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 версия

Эта функция была最初 введена в 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");
?>