首頁  >  文章  >  後端開發  >  格式化聊天清單時間

格式化聊天清單時間

angryTom
angryTom轉載
2020-01-02 17:29:023435瀏覽

格式化聊天清單時間

最近實作一個類似客服聊天的功能。

但是對清單需要顯示的時間格式,不太了解

於是,參考微信聊天清單的時間顯示邏輯。自己實作了一個函數

具體規則:

若需要格式化的時間戳(t)>當天凌晨時間戳,則顯示「上午/下午xx:xx」若t>昨天凌晨時間戳,則顯示「昨天」若t>本週一的凌晨時間戳,則顯示「星期x」若t>上週一的凌晨時間戳,則顯示「上週x」若t<上週一的凌晨時間戳,判斷t所在年份是否跟當前年份相同相同,顯示“x月x日”不同,顯示“x年x月x日”推薦:《PHP教程》 

具體程式碼:

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

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


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

本文來自PHP教學欄目,歡迎學習。

以上是格式化聊天清單時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除