Heim  >  Artikel  >  Backend-Entwicklung  >  Chatlistenzeit formatieren

Chatlistenzeit formatieren

angryTom
angryTomnach vorne
2020-01-02 17:29:023447Durchsuche

Chatlistenzeit formatieren

Kürzlich eine Funktion ähnlich dem Kundenservice-Chat implementiert.

Aber ich weiß nicht viel über das Zeitformat, das in der Liste angezeigt werden muss

Beziehen Sie sich also auf die Zeitanzeigelogik der WeChat-Chatliste. Ich habe selbst eine Funktion implementiert

Spezifische Regeln:

Wenn ein formatierter Zeitstempel (t)> am frühen Morgen des Tages erforderlich ist, wird „AM/PM xx:xx“ angezeigt angezeigt, wenn t> der Zeitstempel am frühen Morgen von gestern ist, wenn t> der Zeitstempel am frühen Morgen dieses Montags ist, dann wird „Woche x“ angezeigt. letzte Woche x“ wird angezeigt, wenn tPHP-Tutorial“

Spezifischer Code:

/**
     * 格式化聊天列表时间
     * @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;
}

Dieser Artikel stammt aus dem PHP-Tutorial Kolumne, willkommen zum Lernen.

Das obige ist der detaillierte Inhalt vonChatlistenzeit formatieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen