最近实现一个类似客服聊天的功能。

但是对列表需要显示的时间格式,不太了解

于是,参照微信聊天列表的时间显示逻辑。自己实现了一个函数

具体规则:

若需要格式化的时间戳(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('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;}

本文来自PHP教程栏目,欢迎学习。

更多相关文章

  1. vCenter给虚拟服务器加资源后服务器时间不对
  2. c语言利用时间戳生成随机数
  3. Python查询迪斯尼\环球公园\海洋世界的等待时间
  4. 大数据最大的问题:数据清理太花时间
  5. 计算时间差,你的方式或许不是最佳实践!
  6. 带有过期时间的LRU实现(java版)
  7. 不看教程,可能更浪费你的时间
  8. 抽点时间写篇文章都是享受
  9. JDK 1.8 中的日期与时间 API 一览

随机推荐

  1. Android彻底组件化方案实践
  2. 王家林,云计算,大数据,Hadoop,Android,iOS,HTML
  3. 安卓View理解总结
  4. android开发学习笔记(2)android的基本介绍
  5. ArcGIS for Android 支持模拟器开发
  6. Android 5.0之应用中实现材料设计—Mater
  7. Android XML解析学习——Dom方式
  8. Android动态加载外部jar包及jar包中图片
  9. Android 开发新方向 Android Wear ——概
  10. Android Alarm驱动源代码分析(Alarm.c)