• PHP Video Tutorials

PHP date_interval_create_from_date_string() Function


Advertisements

Definition and Usage

The date_interval_create_from_date_string() function is an alias of DateInterval::createFromDateString. This accepts a string specifying an interval and returns a DateInterval object.

Syntax

date_interval_create_from_date_string($time)

Parameters

Sr.No Parameter & Description
1

time (Mandatory)

This is a string value specifying the date/interval in relative formats format in which you want the output date string to be.

Return Values

PHP date_interval_create_from_date_string() returns a DateInterval object representing the given interval value.

PHP Version

This function was first introduced in PHP Version 5.3 and, works with all the later versions.

Example

Following example demonstrates the usage of the date_interval_create_from_date_string() function −

<?php
   $time = "3year + 3months + 26 day + 12 hours+ 30 minutes +23 seconds";
   $interval = date_interval_create_from_date_string($time);
   print_r($interval);
?>

This will produce following result −

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
)

In this function you cannot use ISO8601 strings like "P12M" to parse such intervals you need to use the DateInterval constructor.

Example

In the following example we are using the ISO8601 strings notations to create an interval −

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

This will produce following result −

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
)

Example

Following example adds an interval to the current date and prints the results. Here we are using the date_interval_create_from_date_string function to calculate the interval. −

Live Demo
<?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'));
?>

This will produce following result −

Date after 12year 3months 14days: 2032-08-28

Example

following example creates date intervals using various ISO8601 strings and their respective normal strings −

<?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_function_reference.htm
Advertisements