Home >> FAQs/Tutorials >> MySQL Tutorials

MySQL Tutorial - Dispaly Part Time in Days, Hours and Minutes

By: FYIcenter.com

(Continued from previous topic...)

How To Display a Past Time in Days, Hours and Minutes?

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.

(Continued on next topic...)

  1. How To Create a New Table?
  2. How To Get the Number of Rows Selected or Affected by a SQL Statement?
  3. How To Insert Data into an Existing Table?
  4. How To Fix the INSERT Command Denied Error?
  5. How To Insert Multiple Rows with a SELECT Statement?
  6. What Is a Result Set Object?
  7. How To Query Tables and Loop through the Returning Rows?
  8. How To Break Query Output into Pages?
  9. How To Update Existing Rows in a Table?
  10. How To Delete Existing Rows in a Table?
  11. How To Quote Text Values in SQL Statements?
  12. How To Quote Date and Time Values in SQL Statements?
  13. How To Display a Past Time in Days, Hours and Minutes?
  14. How To Perform Key Word Search in Tables?
  15. How To Build WHERE Criteria with Web Form Search Fields?
  16. How To Query Multiple Tables Jointly?
  17. How To Define the ID Column as Auto-Incremented?
  18. How To Get the Last ID Assigned by MySQL?

MySQL Tutorials:

More...


Other Tutorials/FAQs:

More...


Related Resources:

More...


Selected Jobs:

More...