Home > Article > Backend Development > PHP converts time difference into string prompt example detailed explanation
By passing in the UNIX timestamp of the article stored in the database when it was published, it will be converted into prompts such as minutes ago, hours ago, and days ago. For example, Weibo
This looks more user-friendly, okay, let’s go to the code
The code is as follows:
<?php class timeAgo { static $timeagoObject; private $rustle; private $unit; private function construct() { } private function clone(){ } public static function getObject() { if(! (self::$timeagoObject instanceof self) ) self::$timeagoObject = new timeAgo(); return self::$timeagoObject; } private function count_int($unix_C) // main function { if(! (isset($unix_C) || is_numeric($unix_C)) ) return 'don\'t find parameter'; $d = time()-$unix_C ; // $d - unix time difference value $d_int =(int)floor($d/60) ; // minimum unit -- minutes unix/60 $this->unit = 0 ; // is minutes,hour or day? if($d_int < 60){ // minutes in one hour 3600 $this->rustle = $d_int; $this->unit = 1; } else if($d_int < 720){ //hour in one day 3600*12 $this->rustle = floor($d_int/60); $this->unit = 2 ; } else if($d_int < 7200){ //day in ten days 3600*12*10 $this->rustle = floor($d_int/720); $this->unit = 3 ; } else{ $this->rustle = $d ; $this->unit = 4 ; } } public function piece_str($C) { $this->count_int($C); $u = ''; switch( $this->unit ) { case 1: $u = 'minute'; break; case 2: $u = 'hour'; break; case 3: $u = 'day'; break; case 4: $u = ''; break; case 0: return 'sorry , get time is fail'; } if($this->unit < 4) { if($this->rustle > 1) return (string)$this->rustle.$u.'s ago'; else if($this->rustle == 1) return (string)$this->rustle.$u.'ago'; else return 'Just now'; } } /* example: $ago = timeAgo::getObject(); * echo $ago->piece_str($unix); * // 2 days ago */ } ?>
The above is the detailed content of PHP converts time difference into string prompt example detailed explanation. For more information, please follow other related articles on the PHP Chinese website!