At 3:16 AM -0500 1/25/01, [EMAIL PROTECTED] wrote:
>I have a date and time stored in the following format:
>
>day:month:year:hour:minutes
>
>Example 27:01:2001:08:13
>
>I want to work out the difference between that and the current time on my
>server, but I can`t find any math functions in the PHP manual that allows you
>to work out the diference. In the end I hope to be able to display '2 days 23
>hours and 55 minutes' type results, similar to the way in which eLance.com
>shows the time remaining on a project. Anyone have any suggestion if it is at
>all possible?
>
>Thanks
>Ade
>
Take a look under date/time functions:
http://www.php.net/manual/en/ref.datetime.php
You want to convert your stored time into a Unix timestamp (that is,
seconds since midnight 1 jan 1970), subtract the unix timestamp of
the current time, and then display the result in your desired format:
$Deadline = ' 27:01:2001:08:13';
$Bits = explode(':', $Deadline);
$TimeDiff =
mktime($Bits[3],$Bits[4],$Bits[5],$Bits[1],$Bits[0],$Bits[2])
- time();
# $TimeDiff is now the time difference, expressed in seconds.
# Now, use modulo operator repeatedly to get day, hour & minute values.
# BTW, there are 86400 seconds/day, 3600 seconds/hour.
$NDays = $TimeDiff % 86400;
$R = $TimeDiff - ($NDays * 86400);
$NHours = $R % 3600;
$R = $R - ($NHours * 3600);
$NMinutes = round($R/60);
echo "You have $NDays days, $NHours hours and $NMinutes left!";
If you're feeling obfuscatory, you could compact the calculations
into (I think):
$NHours = ($R = $TimeDiff - (($NDays = $TimeDiff % 86400) *
86400)) % 3600;
$NMinutes = round(($R - ($NHours * 3600))/60);
Why you would _want_ to do this, I don't know. I suppose if you're an
ex-FORTRAN programmer frustrated by the lack of assigned and computed
GOTOs and want to take it out on others, maybe. OK, now I'm rambling.
And showing my age...
- steve
Usual untested, off-top-of-head, no-warranty code caveats apply.
--
+--- "They've got a cherry pie there, that'll kill ya" ------------------+
| Steve Edberg University of California, Davis |
| [EMAIL PROTECTED] Computer Consultant |
| http://aesric.ucdavis.edu/ http://pgfsun.ucdavis.edu/ |
+-------------------------------------- FBI Special Agent Dale Cooper ---+
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]