Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

php: datetime() difference between 2 datetime with 2 variables

Tags:

date

php

datetime

I have in my database 4 columns which are:

Date_in | Time_in | Date_out | Time_out

Date_in and Time_in belong together (e.g., 2013-02-18 13:00:00) and date_out goes with Time_out. I would like to find out the difference between and I have gotten up till:

$start_time = new DateTime("'$list[date_in] "."$list[time_in]'");
$since_start = $start_time->diff(new DateTime("'$list[date_out] "."$list[time_out]'"));

$hours = $since_start->h.' hours';

But it doesn't work. I think my quotes and double quotes are all messed up because the use of " ' . really confuses me..

Thanks in advance for any advice on how I can fix my code!

[EDIT] Thanks everyone for all your detailed help! I just realised that the server doesn't support php 5.3 and I can't use datetime().

So my solution was:

$start_time = strtotime("$list[date_in] " . "$list[time_in]");
$end_time = strtotime("$list[date_out] " . "$list[time_out]");
$hours = abs(($end_time - $start_time)/3600);
like image 603
Cuppy Avatar asked Feb 27 '26 21:02

Cuppy


1 Answers

Try this,

function datediff( $date1, $date2 )
{
    $diff = abs( strtotime( $date1 ) - strtotime( $date2 ) );

    return sprintf
    (
        "%d Days, %d Hours, %d Mins, %d Seconds",
        intval( $diff / 86400 ),
        intval( ( $diff % 86400 ) / 3600),
        intval( ( $diff / 60 ) % 60 ),
        intval( $diff % 60 )
    );
}

print datediff( "18th February 2013", "now" ) . "\n";

OR

You can use DateTime::diff

  $start_date = new DateTime("2012-02-10 11:26:00");
    $end_date = new DateTime("2012-04-25 01:50:00");
    $interval = $start_date->diff($end_date);
    echo "Result " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days ";

EDIT:

Checkout links,

How to calculate the difference between two dates using PHP?

Php Date Time – 7 Methods to Calculate the Difference between 2 dates.

may help you.

like image 102
Tony Stark Avatar answered Mar 01 '26 10:03

Tony Stark



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!