PHP MSSQL - Computing Date and Time Differences

Q

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

✍: Guest

A

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 DATEDIFF() SQL function The following tutorial exercise shows you how to use DATEDIFF() to present a past time in days, hours, and minutes:

<?php
  $con = mssql_connect('LOCALHOST','sa','FYIcenter');
  mssql_select_db('FyiCenterData', $con);

  $submit_time = "2007-05-29 04:09:49";
  $sql = "SELECT 'Posted '"
    . " + CONVERT(VARCHAR(40)," 
    . " DATEDIFF(minute, '$submit_time'," 
    . " GETDATE())/(24*60))"
    . " + ' days, '"
    . " + CONVERT(VARCHAR(40),"
    . " DATEDIFF(minute, '$submit_time',"
    . " GETDATE())%(24*60)/60)"
    . " + ' hours, and '"
    . " + CONVERT(VARCHAR(40)," 
    . " DATEDIFF(minute, '$submit_time',"
    . " GETDATE())%60)"
    . " + ' minutes ago.'";
  print("\n$sql\n");

  $res = mssql_query($sql, $con);
  if (!$res) {
    print("SQL statement failed with error:\n");
    print("   ".mssql_get_last_message()."\n");
  } else {
    $row = mssql_fetch_row($res);
    $message = $row[0];
    print("\n$message\n");
  }
  
  mssql_close($con); 

If today is you run this script, you will get something like this:

SELECT 'Posted ' + CONVERT(VARCHAR(40), 
DATEDIFF(minute, '2007-05-29 04:09:49', 
GETDATE())/(24*60))
+ ' days, ' + CONVERT(VARCHAR(40),  
DATEDIFF(minute, '2007-05-29 04:09:49', 
GETDATE())%(24*60)/60) 
+ ' hours, and ' + CONVERT(VARCHAR(40),
DATEDIFF(minute, '2007-05-29 04:09:49', 
GETDATE())%60) 
+ ' minutes ago.'

Posted 26 days, 16 hours, and 15 minutes ago.

 

PHP MSSQL - Searching Records by Keywords

PHP MSSQL - Including Date and Time Values in SQL Statements

SQL Server FAQs - PHP MSSQL Functions - Managing Tables and Data Rows

⇑⇑ SQL Server Connection Tutorials

2024-02-18, 1251🔥, 0💬