Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
How To Display a Past Time in Days, Hours and Minutes
How To Display a Past Time in Days, Hours and Minutes? - MySQL FAQs - Managing Tables and Running Queries with PHP Scripts
✍: FYIcenter.com
You have seen a lots of Websites are displaying past times in days, hours and minutes. If you want to do this yourself, you can use the TIMEDIFF() SQL function. Note that the TIMEDIFF() function can only handle time range within 839 hours (about 33 days). So it works only for past times within one month or so.
The following tutorial exercise shows you how to use TIMEDIFF() to present a past time in days, hours, and minutes:
<?php
include "mysql_connection.php";
$pastTime = "2006-06-29 04:09:49";
$sql = "SELECT HOUR(timeDiff) AS hours,"
. " MINUTE(timeDiff) AS minutes FROM ("
. " SELECT TIMEDIFF(NOW(), '".$pastTime."')"
. " AS timeDiff FROM DUAL) subQuery";
print("SQL = $sql\n");
$rs = mysql_query($sql, $con);
while ($row = mysql_fetch_assoc($rs)) {
print("$pastTime was ".$row['hours']." hours, "
. $row['minutes']." minutes ago.\n");
}
mysql_free_result($rs);
$sql = "SELECT (HOUR(timeDiff) DIV 24) AS days,"
. " (HOUR(timeDiff) MOD 24) AS hours,"
. " MINUTE(timeDiff) AS minutes FROM ("
. " SELECT TIMEDIFF(NOW(), '".$pastTime."')"
. " AS timeDiff FROM DUAL) subQuery";
print("SQL = $sql\n");
$rs = mysql_query($sql, $con);
while ($row = mysql_fetch_assoc($rs)) {
print("$pastTime was ".$row['days']." days, "
. $row['hours']." hours, "
. $row['minutes']." minutes ago.\n");
}
mysql_free_result($rs);
mysql_close($con);
If today is you run this script, you will get something like this:
SQL = SELECT HOUR(timeDiff) AS hours, MINUTE(timeDiff) AS minutes FROM ( SELECT TIMEDIFF(NOW(), '2006-06-29 04:09:49') AS timeDiff FROM DUAL) subQuery 2006-06-29 04:09:49 was 115 hours, 2 minutes ago. SQL = SELECT (HOUR(timeDiff) DIV 24) AS days, (HOUR(timeDiff) MOD 24) AS hours, MINUTE(timeDiff) AS minutes FROM ( SELECT TIMEDIFF(NOW(), '2006-06-29 04:09:49') AS timeDiff FROM DUAL) subQuery 2006-06-29 04:09:49 was 4 days, 19 hours, 2 minutes ago.
Warning again, this script only works if the past time is less than 33 days ago.
2007-05-11, 7569👍, 0💬
Popular Posts:
Is There Any XSD File to Validate Atom Feed Files? - RSS FAQs - Atom Feed Introduction and File Gene...
If cookies are not enabled at browser end does form Authentication work? No, it does not work.
What does a well-written Object Oriented program look like? A well-written object oriented program e...
How To Use "IF" Statements on Multiple Conditions? - Oracle DBA FAQ - Understanding PL/SQL Language ...
How To Return the Second 5 Rows? - MySQL FAQs - SQL SELECT Statements with JOIN and Subqueries If yo...