php处理日期格式为秒前、分前、小时前、昨天、前天
程序员文章站
2022-05-04 09:26:38
...
/** * 将日期格式根据以下规律修改为不同显示样式 * 小于1分钟 则显示多少秒前 * 小于1小时,显示多少分钟前 * 一天内,显示多少小时前 * 3天内,显示前天22:23或昨天:12:23。 * 超过3天,则显示完整日期。 * @static * @param $sorce_date 数据源日期 unix时间戳 * @return void */ public static function getDateStyle($sorce_date){ self::$nowTime = time(); //获取今天时间戳 // echo '数据源时间戳:'.$sorce_date . ' = '. date('Y-m-d H:i:s',$sorce_date); // echo "\n 当前时间戳:". date('Y-m-d H:i:s',self::$nowTime)."\n"; $timeHtml = ''; //返回文字格式 $temp_time = 0; switch($sorce_date){ //一分钟 case ($sorce_date+60)>=self::$nowTime: $temp_time = self::$nowTime-$sorce_date; $timeHtml = $temp_time ."秒前"; break; //小时 case ($sorce_date+3600)>=self::$nowTime: $temp_time = date('i',self::$nowTime-$sorce_date); $timeHtml = $temp_time ."分钟前"; break; //天 case ($sorce_date+3600*24)>=self::$nowTime: $temp_time = date('H',self::$nowTime)-date('H',$sorce_date); $timeHtml = $temp_time .'小时前'; break; //昨天 case ($sorce_date+3600*24*2)>=self::$nowTime: $temp_time = date('H:i',$sorce_date); $timeHtml = '昨天'.$temp_time ; break; //前天 case ($sorce_date+3600*24*3)>=self::$nowTime: $temp_time = date('H:i',$sorce_date); $timeHtml = '前天'.$temp_time ; break; //3天前 case ($sorce_date+3600*24*4)>=self::$nowTime: $timeHtml = '3天前'; break; default: $timeHtml = date('Y-m-d',$sorce_date); break; } return $timeHtml; }