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

PHP 基础教程

PHP 高级教程

PHP & MySQL

PHP 参考手册

PHP date_interval_create_from_date_string() 函数用法及示例

PHP Date & Time 函数手册

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中引入的,并且可以在所有更高版本中使用。

Online-Beispiel

以下示例演示了date_interval_create_from_date_string()函数的用法-

<?php
   $time = ",3Jahr + 3Monate + 26 Tag + 12 Stunden+ 30 Minuten +23 seconds";
   $interval = date_interval_create_from_date_string($time);
   print_r($interval);
?>
Testen Sie es heraus‹/›

Ausgabeergebnis

DateInterval Objekt
(
    [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构造函数。

Online-Beispiel

在以下示例中,我们使用ISO8601字符串表示法创建间隔-

<?php
  $time1 = new DateInterval('P25DP8MP9Y');
   print_r($time1);
   $time2 = new DateInterval('PT10H');
   print_r($time2);
?>
Testen Sie es heraus‹/›

Ausgabeergebnis

DateInterval Objekt
(
    [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 Objekt
(
    [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
)

Online-Beispiel

Nachfolgender Beispiel fügt dem aktuellen Datum Zeitintervalle hinzu und gibt das Ergebnis aus. Hier verwenden wirdate_interval_create_from_date_stringFunktion, um Zeitintervalle zu berechnen.-

<?php
   $date = date_create(); 
   $str = "12Jahr 3Monate 14Tage";
   $interval = date_interval_create_from_date_string($str);
   $res1 = date_add($date, $interval); 
   print("Datum nach ".$str);
   print(": ".date_format($res1, 'Y-m-d'));
?>
Testen Sie es heraus‹/›

Ausgabeergebnis

Datum nach 12Jahr 3Monate 14Tage: 2032-08-28

Online-Beispiel

Nachfolgender Beispiel verwendet verschiedene ISO8601Zeichenfolgen und deren Standard-Datenintervalle-

<?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");
?>