Maison > Article > développement back-end > PHP convertit le décalage horaire en exemple d'invite de chaîne, explication détaillée
En transmettant l'horodatage UNIX de l'article stocké dans la base de données lors de sa publication, il est converti en invites telles qu'il y a quelques minutes, il y a des heures et il y a des jours. Par exemple, Weibo
a l'air plus convivial, d'accord, passons au code
et le code est le suivant :
<?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 */ } ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!