Implementation code of time and date friendly display by PHP

  • 2021-12-21 04:23:23
  • OfStack

System friendliness is very important in the development process. A system that is very friendly can not only bring users a great experience, but also make the system have a longer life. Today's blog post is mainly to show how we can make the date and time more friendly display.

Here is the code to make time and date friendly: core code


<?php
 
 /**
  * =======================================
  * Created by Zhihua_W.
  * Author: Zhihua_W
  * Date: 2016/11/23 0001
  * Time:  Afternoon  5:45
  * Project: PHP Development tips 
  * Power:  Achieve date and time friendly display 
  * =======================================
  */
 
 /**
  *  Date and time friendly display 
  * @param $time
  * @return bool|string
  */
 function friend_date($time)
 {
  if (!$time) {
   return false;
  }
  $fdate = '';
  $d = time() - intval($time);
  $ld = $time - mktime(0, 0, 0, 0, 0, date('Y')); // Deriving year 
  $md = $time - mktime(0, 0, 0, date('m'), 0, date('Y')); // Obtaining month 
  $byd = $time - mktime(0, 0, 0, date('m'), date('d') - 2, date('Y')); // The day before yesterday 
  $yd = $time - mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')); // Yesterday 
  $dd = $time - mktime(0, 0, 0, date('m'), date('d'), date('Y')); // Today 
  $td = $time - mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')); // Tomorrow 
  $atd = $time - mktime(0, 0, 0, date('m'), date('d') + 2, date('Y')); // The day after tomorrow 
  if ($d == 0) {
   $fdate = ' Just now ';
  } else {
   switch ($d) {
    case $d < $atd:
     $fdate = date('Y Year m Month d Day ', $time);
     break;
    case $d < $td:
     $fdate = ' The day after tomorrow ' . date('H:i', $time);
     break;
    case $d < 0:
     $fdate = ' Tomorrow ' . date('H:i', $time);
     break;
    case $d < 60:
     $fdate = $d . ' Seconds ago ';
     break;
    case $d < 3600:
     $fdate = floor($d / 60) . ' Minutes ago ';
     break;
    case $d < $dd:
     $fdate = floor($d / 3600) . ' Hours ago ';
     break;
    case $d < $yd:
     $fdate = ' Yesterday ' . date('H:i', $time);
     break;
    case $d < $byd:
     $fdate = ' The day before yesterday ' . date('H:i', $time);
     break;
    case $d < $md:
     $fdate = date('m Month d Day  H:i', $time);
     break;
    case $d < $ld:
     $fdate = date('m Month d Day ', $time);
     break;
    default:
     $fdate = date('Y Year m Month d Day ', $time);
     break;
   }
  }
  return $fdate;
 }
 
 
 $time = 1442345132;
 echo friend_date($time);


Related articles: