Maison  >  Article  >  développement back-end  >  Formater l'heure de la liste de discussion

Formater l'heure de la liste de discussion

angryTom
angryTomavant
2020-01-02 17:29:023371parcourir

Formater l'heure de la liste de discussion

Récemment implémenté une fonction similaire au chat du service client.

Mais je ne sais pas grand-chose sur le format de l'heure qui doit être affiché dans la liste

Alors, référez-vous à la logique d'affichage de l'heure de la liste de discussion WeChat. J'ai moi-même implémenté une fonction

Règles spécifiques :

Si un horodatage formaté (t)> au petit matin de la journée est requis, alors "AM/PM xx:xx" sera affiché si t> Si l'horodatage tôt le matin d'hier est "hier", si t> est l'horodatage tôt le matin de ce lundi, alors "semaine x" sera affiché. la semaine dernière x" sera affiché si tTutoriel PHP"

Code spécifique :

/**
     * 格式化聊天列表时间
     * @param $timestamp int 时间戳
     * @return false|string
     */
    public static function formatChatListTime($timestamp){
        $today = strtotime('today');
        $yesterday = strtotime('yesterday');
        // 本周一
        $thisMonday = $today - ((date('w',time()) == 0 ? 7 : date('w',time()))-1)*24*3600;
        // 上周一
        $lastMonday = $thisMonday - 7*24*3600;

        if ($timestamp > $today){
            $a = date('a', $timestamp);
            $t = date('h:i', $timestamp);
            if ($a == 'am'){
                $a = '上午 ';
            }else{
                $a = '下午 ';
            }
            $result = $a.$t;
        }else if ($timestamp > $yesterday){
            $result = '昨天';
        }else if ($timestamp > $thisMonday){
            $result = self::getWeekDesc($timestamp);
        }else if ($timestamp > $lastMonday){
            $result = '上' . self::getWeekDesc($timestamp);
        }else{
            if (date('Y', $timestamp) == date('Y', time())){
                $result = self::dateTimeFormat($timestamp, 'm月d日');
            }else{
                $result = self::dateTimeFormat($timestamp, 'Y年m月d日');
            }
        }
        return $result;
    }


/**
 * 获取指定时间戳的星期几-中文描述
 * @param int $timeStamp 时间戳
 * @return string
 */
public static function getWeekDesc($timeStamp){
    if(intval($timeStamp) == 0){
        return '';
    }
    $week = date('w', $timeStamp);
    switch ($week){
        case 0:
            $desc = '星期日';
            break;
        case 1:
            $desc = '星期一';
            break;
        case 2:
            $desc = '星期二';
            break;
        case 3:
            $desc = '星期三';
            break;
        case 4:
            $desc = '星期四';
            break;
        case 5:
            $desc = '星期五';
            break;
        case 6:
            $desc = '星期六';
            break;
        default:
            $desc = '';
            break;
    }
    return $desc;
}

Cet article provient du Tutoriel PHP colonne, bienvenue pour apprendre.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer