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);