>  기사  >  백엔드 개발  >  채팅 목록 시간 형식 지정

채팅 목록 시간 형식 지정

angryTom
angryTom앞으로
2020-01-02 17:29:023432검색

채팅 목록 시간 형식 지정

최근 고객 서비스 채팅과 유사한 기능을 구현했습니다.

근데 목록에 표시해야 하는 시간 형식에 대해서는 잘 모르겠습니다

그러니 위챗 채팅 목록의 시간 표시 로직을 참고하세요. 제가 직접 함수를 구현했습니다.

특정 규칙:

타임스탬프를 그날 이른 아침의 형식(t) >으로 지정해야 하는 경우 "AM/PM xx:xx"가 표시됩니다. > 어제 이른 시간의 타임스탬프, t> 이번 월요일의 이른 아침 타임스탬프인 경우 ""어제", "주 x"가 표시되고, t> 지난 월요일의 이른 아침 타임스탬프인 경우 "지난 주"가 표시됩니다. x"; t< 지난 월요일의 이른 아침 타임스탬프인 경우 t를 결정합니다. 연도가 현재 연도와 동일한지 여부, "x월 x일"의 표시가 다르며 표시는 "x년의 x월 x일"입니다. " 추천: "PHP Tutorial"

특정 코드:

/**
     * 格式化聊天列表时间
     * @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 Tutorial 칼럼에서 가져온 것입니다. 배우신 것을 환영합니다.

위 내용은 채팅 목록 시간 형식 지정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제