揪出微信時間規則的貓膩
在使用微信的時候,我們是否會注意到iOS端/Andriod端上的時間顯示規則的不同?在沒有多大差異的用戶體驗背后,微信有著一套兩端差異大、機制復雜的時間顯示規則。
由于工作的需要前段時間調研了下微信朋友圈以及會話頁面時間顯示規則,在這里總結分享給大家。
一、概述
常規方式同一個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億月活設備的龐大平臺,能清晰簡單地展示這個時間是非常有必要的;但是反觀現在的微信時間顯示規則過于復雜并且兩端差異過大,雖然對普通用戶而言并沒有太大的體驗上的差異,但是對于開發者和管理者而言,過于復雜維護起來將是較大的成本。但復雜應該也有其存在的意義,我們也只能站在旁觀者的角度去揣測他的方向,很難深入地去研究。
作者:檐下風鈴舞動,微信公眾號:檐下風鈴舞動(ID:yxflwd)
本文由 @檐下風鈴舞動 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
盤點的并不徹底啊 兄弟~~
可以再細致點。安卓會話框時間,中午是12點,下午1點下午2點
這么復雜真的有意義嗎
為什么沒意義??
?? ?? ??