$TimeNow examples

//Get the db DateTime (function below)
$SqlServerTimeNow = db_read_server_time();

//Get the PHP server DateTiem now (not necessarily the same as the SQL server!!)
$TimeNow = date("Y-m-d H:i:s");



//******************************************
//******************************************
//********** READ SQL SERVER TIME **********
//******************************************
//******************************************
function db_read_server_time ()
{
  global $wpdb;
  
  $sql ="SELECT NOW() as SqlServerDateTimeNow";
  if (current_user_can('administrator'))
    $wpdb->show_errors();
  $Results = $wpdb->get_results($sql, ARRAY_A);
  if (count($Results) > 0)
    return($Results[0]['SqlServerDateTimeNow']);
  else
    return("");     
}

User friendly how long ago

//Requires the db_read_server_time() function above

//****************************************************
//****************************************************
//********** GET USER FRIENDLY HOW LONG AGO **********
//****************************************************
//****************************************************
function GetUserFriendlyHowLongAgo ($TimeNow, $PastDateTime)
{
  
  $SecondsElapsed = strtotime($TimeNow) - strtotime($PastDateTime);
  $MinutesElapsed = floor($SecondsElapsed / 60);      //floor() rounds down so you get only full minutes that have passed
  $HoursElapsed = floor($SecondsElapsed / 3600);
  $DaysElapsed = floor($SecondsElapsed / 86400);
  $YearsElapsed = floor($DaysElapsed / 365);

  if ($SecondsElapsed < 0)
    return("");     //In the future - invalid
  else if ($YearsElapsed > 1)
    return("$YearsElapsed years ago");
  else if ($YearsElapsed == 1)
    return("$YearsElapsed year ago");
  else if ($DaysElapsed > 1)
    return("$DaysElapsed days ago");
  else if ($DaysElapsed == 1)
    return("$DaysElapsed day ago");
  else if ($HoursElapsed > 1)
    return("$HoursElapsed hours ago");
  else if ($HoursElapsed == 1)
    return("$HoursElapsed hour ago");
  else if ($MinutesElapsed > 1)
    return("$MinutesElapsed mins ago");
  else 
    return("Just now");
}
Multi language version
//Requires the db_read_server_time() function above

//****************************************************
//****************************************************
//********** GET USER FRIENDLY HOW LONG AGO **********
//****************************************************
//****************************************************
function GetUserFriendlyHowLongAgo ($TimeNow, $PastDateTime)
{
  
  $SecondsElapsed = strtotime($TimeNow) - strtotime($PastDateTime);
  $MinutesElapsed = floor($SecondsElapsed / 60);      //floor() rounds down so you get only full minutes that have passed
  $HoursElapsed = floor($SecondsElapsed / 3600);
  $DaysElapsed = floor($SecondsElapsed / 86400);
  $YearsElapsed = floor($DaysElapsed / 365);

  if ($SecondsElapsed < 0)
    return("");     //In the future - invalid
  else if ($YearsElapsed > 1)
    return("$YearsElapsed " . __('years ago', 'mytd') );
  else if ($YearsElapsed == 1)
    return("$YearsElapsed " . __('year ago', 'mytd') );
  else if ($DaysElapsed > 1)
    return("$DaysElapsed " . __('days ago', 'mytd') );
  else if ($DaysElapsed == 1)
    return("$DaysElapsed " . __('day ago', 'mytd') );
  else if ($HoursElapsed > 1)
    return("$HoursElapsed " . __('hours ago', 'mytd') );
  else if ($HoursElapsed == 1)
    return("$HoursElapsed " . __('hour ago', 'mytd') );
  else if ($MinutesElapsed > 1)
    return("$MinutesElapsed " . __('mins ago', 'mytd') );
  else 
    return(__('Just now', 'mytd') );
}

User friendly how long until

//Requires the db_read_server_time() function above


//******************************************************
//******************************************************
//********** GET USER FRIENDLY HOW LONG UNTIL **********
//******************************************************
//******************************************************
function GetUserFriendlyHowLongUntil ($TimeNow, $FutureDateTime)
{
  
  $SecondsElapsed = strtotime($FutureDateTime) - strtotime($TimeNow);
  $MinutesElapsed = floor($SecondsElapsed / 60);      //floor() rounds down so you get only full minutes that have passed
  $HoursElapsed = floor($SecondsElapsed / 3600);
  $DaysElapsed = floor($SecondsElapsed / 86400);
  $YearsElapsed = floor($DaysElapsed / 365);

  if ($YearsElapsed > 1)
    return("$YearsElapsed years");
  else if ($YearsElapsed == 1)
    return("$YearsElapsed year");
  else if ($DaysElapsed > 1)
    return("$DaysElapsed days");
  else if ($DaysElapsed == 1)
    return("$DaysElapsed day");
  else if ($HoursElapsed > 1)
    return("$HoursElapsed hours");
  else if ($HoursElapsed == 1)
    return("$HoursElapsed hour");
  else if ($MinutesElapsed > 1)
    return("$MinutesElapsed mins");
  else 
    return("past");
}
Multi language version
//Requires the db_read_server_time() function above

//******************************************************
//******************************************************
//********** GET USER FRIENDLY HOW LONG UNTIL **********
//******************************************************
//******************************************************
function GetUserFriendlyHowLongUntil ($TimeNow, $FutureDateTime)
{
  
  $SecondsElapsed = strtotime($FutureDateTime) - strtotime($TimeNow);
  $MinutesElapsed = floor($SecondsElapsed / 60);      //floor() rounds down so you get only full minutes that have passed
  $HoursElapsed = floor($SecondsElapsed / 3600);
  $DaysElapsed = floor($SecondsElapsed / 86400);
  $YearsElapsed = floor($DaysElapsed / 365);

  if ($YearsElapsed > 1)
    return("$YearsElapsed " . __('years', 'mytd') );
  else if ($YearsElapsed == 1)
    return("$YearsElapsed " . __('year', 'mytd') );
  else if ($DaysElapsed > 1)
    return("$DaysElapsed " . __('days', 'mytd') );
  else if ($DaysElapsed == 1)
    return("$DaysElapsed " . __('day', 'mytd') );
  else if ($HoursElapsed > 1)
    return("$HoursElapsed " . __('hours', 'mytd') );
  else if ($HoursElapsed == 1)
    return("$HoursElapsed " . __('hour', 'mytd') );
  else if ($MinutesElapsed > 1)
    return("$MinutesElapsed " . __('mins', 'mytd') );
  else 
    return(__('past', 'mytd') );
}
USEFUL?
We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.
Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.

Comments

Your email address will not be published.