揪出微信时间规则的猫腻

由于工作的需要前段时间调研了下微信朋友圈以及会话页面时间显示规则,总结分享给大家。

一、概述

常规方式同一个app不同平台时间显示规则应该是一样的,但是细心的同学会发现微信出乎意料的用了两种显示规则。也可以看出微信两端是由多个且不同产品经理设计的(这是废话),所以这次主要调研的是微信app客户端的安卓和iOS平台,系统版本为v7.0.3。

二、常规显示规则

先来说说常规app应用是怎么显示时间的。一般区分前后端,主要分为两种呈现方式。

第一种是后端直接设计时间显示规则,前端直接显示。这样做优点就可以统一多个平台显示规则,而且灵活。后期需要修改显示规则只需要后段修改一下即可保证前段app显示规则的同时调整,不需要发布应用包,但同时缺点对后端的压力也大。

第二种是后端提供时间字段,由前端设计显示规则。这样做优点可以让多个平台显示不同的规则,同时也减少了后端的压力,但也有缺点,不够灵活后期修改需要发布应用包。微信用的就是第二种。当然时间显示规则设计后一般改动的几率会比较小,除非有错误或者影响到了用户的体验。

今天介绍的主要是会话模块和朋友圈模块的显示规则。会话模块指的是微信的第一个主页聊天页面,会话模块主要分为两处的时间显示,会话列表和聊天界面。

相对的朋友圈模块指的是与朋友圈相关的页面的时间显示。主要是“发现”下面的朋友圈页面、未读消息页面、详情页面、评论回复以及相册页面。

三、模块介绍

1、会话模块

首先会话模块指的就是聊天那个模块,我们主要调研了其两处的时间显示规则。

(1)会话列表

由于系统可以设置时间为24小时制和12小时制,且微信对这两种情况都做了调整,所以我将细分为24小时制和12小时制的规则。并且每个页面对比iOS和Android系统进行对比。

从调研结果来看,iOS的会话列表显示时间24时制时主要是展示最新一条消息的时间,如果没收到消息了,当天直接显示“时分”,而大于今天小于等于昨天直接显示“昨天”,当大于昨天而小于等于一周时则显示“星期几”(一周是从接收最后一条消息开始算的),当大于一周后直接显示“年月日”。

12时制时,需要区分“时段”,0点到6点时为“凌晨”,6点到12点时为“上午”,12点到24点时为“下午”。需要对每一天的时间进行划分时段显示,例如上午8:12,其他跟24时制的没什么区别。

对比Android系统,当设置为24小时制时跟 iOS的24时制没有太多区别,唯一不同是iOS大于昨天而小于一周,这里的一周是从最后一条消息显示的时间开始计算环绕一周的,而安卓的大于昨天小于本周,这里的“本周”是从周一0:00开始算到周日的23:59分结束的,所以有本质的区别。相比12小时制,安卓的更加细分“时段”,把0点到6点为“凌晨”,6点到12点为“上午”,12点到14点为“中午”,14点到18点为“下午”,18点到24点为“晚上”,“本周”和24时制的相同有区别与iOS,其他并没有太大差异。

(2)聊天页面

即和好友对话的页面,往往这个页面需要显示更详细的时间。这个时间不是每一条消息都去统计,因为在快速聊天时统计每条消息的时间是没有多大意义的,所以在iOS平台每隔五分钟会统计一次。即当两人在不间断的聊天时,iOS每隔五分钟记录一次时间。其他就不展开细说了,详看表格。

对比Android系统,有些奇特的是在连续群聊或者私聊的时候,并不能知道他隔多长时间统计一次,毫无规律可言。

2、朋友圈模块

朋友圈模块指的是发现模块下的朋友圈模块。主要跟朋友圈相关的页面的时间规则,其中包括朋友圈页面、详细页面、相册页面、评论/回复和未读消息。当然朋友圈模块下的这些页面也分为24小时制和12小时制。

(1)由于朋友圈页面的显示方式不一样,所以我单独做了个介绍。我给朋友圈页面这种显示方式取名为“统计计时法”(没想到其他更好的名字)从朋友圈发布成功后,开始计时直到永远,以一种统计的方式显示。发布后的前120秒,都显示1分钟前;120秒到1小时内,都显示n分钟前;1小时到24小时内,都显示n小时前;大于24小时又小于48小时的情况需要判断,这个时间段是否属于昨天的范畴还是前天的范畴,属于昨天就显示“昨天”,属于前天就显示2天前;大于48小时后直接统计距离发布当天的相隔几天直接显示n天前。这里需要注意的是,第一我们常规统计到秒,但是微信只显示到分钟;第二不足2分钟按一分钟前显示,不满2小时按1小时前显示,以此类推。

朋友圈这个页面,Android跟iOS规则是一致的。

(2)详情页面、相册页面、评论/回复和未读消息的时间显示我把他命名为“定时计时法”就是发布的显示时间是固定的,不会受当前变化的时间影响。当天也就是在发布朋友圈消息后到现在没有跨跃一天的情况下还要判断有没有跨越小时,没跨越就显示n分钟前,已跨越小时就直接显示时分。当跨越了一天,就显示“昨天”。当跨越了昨天且在今年内(没有跨越一年)就显示月日,跨越一年就显示年月日,以此类推。

相对于Android,这几个页面相对比较简单。在发布朋友圈消息的当天直接显示“时分”,昨天就直接显示“昨天+时分”,大于昨天的都是直接显示“年月日+时分”。并且不用区分24或者12时制的显示

四、总结

时间的目的是为了清晰明确的记录改条信息的存在,可以让用户能通过时间快速定位到该条信息。而设计这个规则要结合用户使用习惯以及用户体验为前提,在不打扰到用户的前提之下又能快速定位到这条信息的“存在”。

微信,作为一个坐拥11亿月活设备的庞大平台,能清晰简单的展示这个时间是非常有必要的,但是反观现在的微信时间显示规则过于复杂并且两端差异过大,虽然对普通用户而言并没有太大的体验上的差异,但是对于开发者和管理者而言,过于复杂维护起来将是较大的成本。但复杂应该也有其存在的意义,我们也只能站在旁观者的角度去揣测他的方向,很难深入的去研究。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359

推荐阅读更多精彩内容