Compare current time with another time in php

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Given two dates (date1 and date2) and the task is to compare the given dates. Comparing two dates in PHP is simple when both the dates are in the same format but the problem arises when both dates are in a different format.

    Method 1: If the given dates are in the same format then use a simple comparison operator to compare the dates.

    Example:

    $date1 = "1998-11-24";

    $date2 = "1997-03-26";

    if ($date1 > $date2)

        echo "$date1 is latest than $date2";

    else

        echo "$date1 is older than $date2";

    ?>

    Output:

    1998-11-24 is latest than 1997-03-26
    

    Method 2: If both of the given dates are in different formats then use strtotime() function to convert the given dates into the corresponding timestamp format and lastly compare these numerical timestamps to get the desired result.

    Example:

    $date1 = "12-03-26";

    $date2 = "2011-10-24";

    $dateTimestamp1 = strtotime($date1);

    $dateTimestamp2 = strtotime($date2);

    if ($dateTimestamp1 > $dateTimestamp2)

        echo "$date1 is latest than $date2";

    else

        echo "$date1 is older than $date2";

    ?>

    Output:

    12-03-26 is latest than 2011-10-24
    

    Method 3: Using DateTime class to compare two dates.

    Example:

    $date1 = new DateTime("12-11-24");

    $date2 = new DateTime("2011-03-26");

    if ($date1 > $date2)

        echo $date1->format("Y-m-d") . " is latest than "

                . $date2->format("Y-m-d");

    else

        echo $date1->format("Y-m-d") . " is older than " 

                . $date2->format("Y-m-d");

    ?>

    Output:

    2012-11-24 is latest than 2011-03-26
    

    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.


    Comparing dates becomes necessary when you are creating booking and event scheduling plugins or websites in PHP. It has many other uses as well, depending on how you implement things. For example, we might use it to create time-sensitive promotional events in our PHP scripts.

    PHP comes with dedicated functions and methods that you can use to compare dates when writing procedural or object-oriented style code. In this tutorial, we will discuss them both.

    Compare Dates in PHP (Object-Oriented Style)

    There is a DateTime class in PHP that you can use to create DateTime objects. You can pass it a valid date/time string along with an optional timezone argument to create a DateTime object. Here are a few examples:

    You can use simple comparison operators on these DateTime objects to compare the dates now and check whether the returned value is true or false.

     $dist_past) {
        echo 'The third date is in the distant past.';
    }
    // Output: The third date is in the distant past.
    
    
    if($dist_future > $now) {
        echo 'The fourth date is in the future.';
    }
    // Output: The fourth date is in the future.
    
    ?>

    Difference of Dates in PHP (Object-Oriented Style)

    Sometimes, you might want to get some more information when comparing dates. There are dedicated methods and functions in PHP to calculate the difference between dates.

    Once you have created your DateTime objects, you can also call the diff() method on one object and pass it the other date in order to calculate the difference between the dates. This will give you back a DateInterval object.

    Keep in mind that the date on which you called diff() will be subtracted from the date passed to this method. You can format the difference any way you like after that by using the format() method. Here are some examples:

    diff($now);
    
    $days_next = $now->diff($next);
    
    echo $days_last->format('%a days').' since last Christmas.';
    // Output: 170 days since last Christmas.
    
    echo $days_next->format('%a days').' to next Christmas.';
    // Output: 194 days to next Christmas.
    
    ?>

    You can pass many parameters to the format() method to control how PHP outputs the difference. In our example, we used %r to determine the relativity of the difference. A positive value means that the date passed to diff() is in the future in comparison to the date which called it. A negative value means that the date passed to diff() is in the past in comparison to the date which called it. The %a string is used to show the number of days and hours. You can also use other strings like %H, %I, and %S to show hours, minutes, and seconds respectively. All these format characters can be found in the documentation for the format() method.

    Compare Dates in PHP (Procedural Style)

    You can use a different set of functions if you prefer to write procedural style code. In this case, we can use the date_create() function to create our DateTime objects from the passed string. The variables you define will still store DateTime objects, but they won't be explicitly instantiated by you.

    Since we are still dealing with DateTime objects, the regular comparison operators will still allow us to compare these dates.

     $dist_past) {
        echo 'The third date is in the distant past.';
    }
    // Output: The third date is in the distant past.
    
    
    if($dist_future > $now) {
        echo 'The fourth date is in the future.';
    }
    // Output: The fourth date is in the future.
    
    ?>

    Difference of Dates in PHP (Procedural Style)

    Just like the diff() method of the DateTime class, there is a corresponding date_create() function that you can use to calculate the difference between two dates. It accepts two parameters, and the date provided in the first parameter is subtracted from the date in the second parameter.

    Here's an example to calculate the number of days since last Christmas and the number of days to next Christmas.

    We wanted to keep the returned number of days positive in both cases, so the time that comes later is passed as the second parameter.

    Final Thoughts

    PHP comes with handy methods and functions to compare two dates, depending on your coding style. You can get more information like the exact time difference between two dates using the diff() method and the date_diff() function in PHP. I have tried to cover the basics of comparing dates in PHP in this tutorial. You should consider reading the documentation to learn how to format the difference in dates in more advanced ways.

    Did you find this post useful?

    Compare current time with another time in php

    Freelancer, Instructor

    I am a full-stack developer who also loves to write tutorials. After trying out a bunch of things till second year of college, I decided to work on my web development skills. Starting with just HTML and CSS, I kept moving forward and gained experience in PHP, JavaScript and Python. I usually spend my free time either working on some side projects or traveling around.

    How can I compare two times in PHP?

    The trick to manipulating and comparing dates and times in PHP is to store date/time values in an integer variable and to use the mktime(), date() and strtotime() functions. The integer repesentation of a date/time is the number of seconds since midnight, 1970-Jan-1, which is referred to as the 'epoch'.

    How can I compare current date and time in PHP?

    Once you have created your DateTime objects, you can also call the diff() method on one object and pass it the other date in order to calculate the difference between the dates. This will give you back a DateInterval object. $last = new DateTime( "25 Dec 2020" ); $now = new DateTime( "now" );

    How can I compare today's date with another date in PHP?

    php compare two dates.
    $today = date("Y-m-d");.
    $expire = $row->expireDate; //from database..
    $today_time = strtotime($today);.
    $expire_time = strtotime($expire);.
    if ($expire_time < $today_time) { /* do Something */ }.

    How do you check if a date is greater than another date in PHP?

    If the given dates have the same format, use a simple comparison operator to compare the dates..
    $date1 = "2010-01-15";.
    $date2 = "2020-12-14";.
    if ($date1 < $date2).
    echo "$date1 is less than $date2";.
    echo "$date1 is greater than $date2";.