Get difference between two dates and time in php

In this article, we will see how to calculate the difference between 2 dates in PHP, along with understanding its implementation through the examples. Given two dates ie., start_date and end_date & we need to find the difference between the two dates.

Consider the below example:

Input: start_date: 2016-06-01 22:45:00 
       end_date: 2018-09-21 10:44:01
Output: 2 years, 3 months, 21 days, 11 hours, 59 minutes, 1 seconds
Explanation: The difference of 2 dates will give the date in complete format.

Method 1: Using date_diff() Function

This function is used to find the difference between two dates. This function will return a DateInterval object on the success and returns FALSE on failure.

Example: This example illustrates the use of the date_diff() function to calculate the difference between the 2 dates.

PHP

<?php

  $datetime1 = date_create('2016-06-01');

  $datetime2 = date_create('2018-09-21');

  $interval = date_diff($datetime1, $datetime2);

  echo $interval->format('%R%y years %m months');

?>

Output:

+2 years 3 months

Method 2: To use the date-time mathematical formula to find the difference between two dates. It returns the years, months, days, hours, minutes, seconds between two specified dates.

Example: In this example, we will be using the date-time mathematical formula to calculate the difference between the dates that will be returned in years, months, days, hours, minutes, seconds.

PHP

<?php

  $date1 = strtotime("2016-06-01 22:45:00");

  $date2 = strtotime("2018-09-21 10:44:01");

  $diff = abs($date2 - $date1);

  $years = floor($diff / (365*60*60*24));

  $months = floor(($diff - $years * 365*60*60*24)

                                 / (30*60*60*24));

  $days = floor(($diff - $years * 365*60*60*24 -

               $months*30*60*60*24)/ (60*60*24));

  $hours = floor(($diff - $years * 365*60*60*24

         - $months*30*60*60*24 - $days*60*60*24)

                                     / (60*60));

  $minutes = floor(($diff - $years * 365*60*60*24

           - $months*30*60*60*24 - $days*60*60*24

                            - $hours*60*60)/ 60);

  $seconds = floor(($diff - $years * 365*60*60*24

           - $months*30*60*60*24 - $days*60*60*24

                  - $hours*60*60 - $minutes*60));

  printf("%d years, %d months, %d days, %d hours, "

       . "%d minutes, %d seconds", $years, $months,

               $days, $hours, $minutes, $seconds);

?>

Output:

2 years, 3 months, 21 days, 11 hours, 59 minutes, 1 seconds

Method 3: This method is used to get the total number of days between two specified dates.

PHP

<?php

  $start_date = strtotime("2018-06-08");

  $end_date = strtotime("2018-09-19");

  echo "Difference between two dates: "

      . ($end_date - $start_date)/60/60/24;

?>

Output:

Difference between two dates: 103

PHP is a server-side scripting language designed specifically for web development. You can learn PHP from the ground up by following this PHP Tutorial and PHP Examples.


How can I get the difference between two dates and time in PHP?

PHP date_diff() Function $date2=date_create("2013-12-12"); $diff=date_diff($date1,$date2);

How do you find the difference between two dates?

Use the DATEDIF function when you want to calculate the difference between two dates. First put a start date in a cell, and an end date in another..
Use DATEDIF to find the total years. ... .
Use DATEDIF again with “ym” to find months. ... .
Use a different formula to find days..

How can I calculate total hours in PHP?

There are two ways to calculate the total time from the array. Using strtotime() function: The strtotime() function is used to convert string into the time format. This functions returns the time in h:m:s format. Example 1: This example reads the values from the array and converts it into the time format.

How do I calculate the time difference between two dates in Python?

Use the strptime(date_str, format) function to convert a date string into a datetime object as per the corresponding format . To get the difference between two dates, subtract date2 from date1. A result is a timedelta object.