Re: Calculating difference between two days

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for all your, very usefull examples.

-afan



> Shouldn't be too difficult in PHP.
>
> <?php
>   $yesterday = date("m/d/y", mktime(0,0,0,date("m"), date("d") - 1,
> date("y")));
>   $today = date("m/d/y");
>
>   $secondsdiff = strtotime($today) - strtotime($yesterday);
>   $minutesdiff = $secondsdiff / 60;
>   $hoursdiff = $minutesdiff / 60;
>   $daysdiff = $hoursdiff / 24;
>
>   echo "Seconds difference: $secondsdiff<br>\n";
>   echo "Minutes difference: $minutesdiff<br>\n";
>   echo "Hours difference: $hoursdiff<br>\n";
>   echo "Days difference: $daysdiff<br>\n";
> ?>
>
>
> And if you want a larger example to play with, here's something I did a
> couple years ago (forgive the word wrapping and any unrefinedness.. it's
> something I whipped up as a test when someone asked a similar question
> back then).
>
> There's bound to be some way to do it in SQL as well, but unless there's a
> specific function for it like the other example given by another member,
> then you're likely to write a lot of really ugly SQL code to tackle the
> problem.
>
> Good luck!
>
> -TG
>
> <?php
>   # Standard format dates and times
>   $startdate = "04/12/04";
>   $starttime = "13:05:01";
>
>   $enddate = "10/14/04";
>   $endtime = "13:05:01";
>
>   # Break apart dates and times for mktime
>   list($smonth,$sday,$syear) = explode("/",$startdate);
>   list($emonth,$eday,$eyear) = explode("/",$enddate);
>   list($shour,$sminute,$ssecond) = explode(":",$starttime);
>   list($ehour,$eminute,$esecond) = explode(":",$endtime);
>
>   # Number of seconds in each timeframe, 1 month = 30 days
>   $secondsequiv
> array("Years"=>31536000,"Months"=>2592000,"Days"=>86400,"Hours"=>3600,"Minutes"=>60);
>
>   # How many seconds between two dates/times
>   $daydiff = mktime($ehour,$eminute,$esecond,$emonth,$eday,$eyear) -
>   mktime($shour,$sminute,$ssecond,$smonth,$sday,$syear);
>
>   if ($daydiff < 0) { $daydiff *= -1; $negative = TRUE; }
>
>   # Just to make sure I didn't use $remainder somewhere else in my script
> and forgot
>   if (isset($remainder)) unset($remainder);
>
>   # Cycle through timeframes checking to see if number is large enough to
> be a full year/month/day/etc
>   # If so, find out how many and store remainder for further processing
>   # If not, set to zero and continue processing
>   foreach ($secondsequiv as $timeframe=>$seconds) {
>     if (isset($remainder)) { $checkvalue = $remainder; } else {
> $checkvalue = $daydiff; }
>     if ($checkvalue >= $seconds) {
>       $daydiffarr[$timeframe] = floor($checkvalue/$seconds);
>       $remainder = $daydiff % $seconds;
>     } else {
>       $daydiffarr[$timeframe] = 0;
>     }
>   }
>
>   # If $reminder is never used, then we're dealing with less than a
> minute's worth of time diff
>   if (isset($remainder)) {
>     $daydiffarr["Seconds"] = $remainder;
>   } else {
>     $daydiffarr["Seconds"] = $daydiff;
>   }
>
>   # Display results
>   if ($negative) echo "NEGATIVE!!<br>\n";
>   foreach ($daydiffarr as $timeframe=>$count) {
>     echo "$timeframe = $count<br>\n";
>   }
> ?>
>
> = = = Original message = = =
>
> Hi,
> I need to calculate no. of days between two dates, actually between date
> stored in DB and today's date.
>
> Does anybody has an example I can use?
>
> I found an example on
> http://www.developertutorials.com/tutorials/php/calculating-difference-between-dates-php-051018/page1.html
>
> but function gregoriantojd() doesn't work for me
> Fatal error: Call to undefined function: gregoriantojd()
>
> Found this:
> Please read the manual:
>   http://www.php.net/manual/en/ref.calendar.php
> You need to either compile the extension in or load it.
> Since you provided no details about your situation at all,
> I cannot help you further.
> on
> http://bugs.php.net/bug.php?id=10151&edit=1
>
>
> Thanks on any help.
>
> -afan
>
>
> ___________________________________________________________
> Sent by ePrompter, the premier email notification software.
> Free download at http://www.ePrompter.com.
>
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux