当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP date_interval_create_from_date_string()用法及代码示例



定义和用法

这个date_interval_create_from_date_string()函数是 DateInterval::createFromDateString 的别名。这接受一个指定间隔的字符串并返回一个 DateInterval 对象。

用法

date_interval_create_from_date_string($time)

参数

Sr.No 参数及说明
1

time (Mandatory)

这是一个字符串值,以您希望输出日期字符串的相对格式格式指定日期/间隔。

返回值

PHP 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 Object
(
    [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
)

在这个函数中,你不能使用像 "P12M" 这样的 ISO8601 字符串来解析你需要使用 DateInterval 构造函数的间隔。

示例

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

<?php
  $time1 = new DateInterval('P25DP8MP9Y');
   print_r($time1);
   $time2 = new DateInterval('PT10H');
   print_r($time2);
?>

这将产生以下结果 -

DateInterval Object
(
    [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 Object
(
    [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("Date after ".$str);
   print(":".date_format($res1, 'Y-m-d'));
?>

这将产生以下结果 -

Date after 12year 3months 14days: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");
?>

相关用法


注:本文由纯净天空筛选整理自 PHP date_interval_create_from_date_string() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。