关于类似朋友圈的发布时间间隔计算问题(python)

          今天接触到要做一个类似朋友圈的那种消息的显示页面,刚开始我有点对底下那个时间的显示,就是什么几分钟前,几天前,几小时前什么的,这玩意需要计算才能得到啊,可是咋整呢?我思考了一段时间,算了,不扯了,直接上代码。
        a = str(m.Zmess.create_at)

        tt = time.mktime(time.strptime(a, '%Y-%m-%d %H:%M:%S'))
        t = time.time()
        b = int(t - tt)
        print(b)

        c = 60
        d = 60 * c
        e = 24 * d
        f = 7 * e

        if c > b :
            po['post_at'] = "刚刚"
        elif d > b :
            po['post_at'] = str(int(math.floor(b / c))) + "分钟前"
        elif e > b:
            po['post_at'] = str(int(math.floor(b / d))) + "小时前"
        elif f > b:
            po['post_at'] = str(int(math.floor(b / e))) + "天前"
        else :
            po['post_at'] = str(int(math.floor(b / f))) + "周前"

           首先呢,我先分享下我的思路,a后面的那个不要在意,只是获取到的朋友圈的发布时间,由于数据库中的发布时间是个datetime类型,所以要通过mktime处理那么一小下下,t为获取到的当前时间,这个样子就能获取到它们两个之间的差值,也就是时间差。

           接下来的计算过程刚开始我想到写月和年,毕竟也有几个月前或是几年前发的动态,那么问题来了,一个月的天数是不一样的,我怎么样判断它过了一个月,没有月又怎么判断年? 然后咋办,我狂翻了朋友圈,花了10分钟左右终于翻到了63天前的动态,然后····就没有然后了,它不让我继续翻了,估计朋友圈阅览的条数是有上限的。然后我就知道了呗,微信朋友圈中就没有月这个概念,最起码在这64天,也就是三个月左右的时间段内并没有细分到月这个单位。得知这个,前辈让我细化到周,毕竟一周固定有7天嘛,然后就有了上面的代码。

           稍稍浪费那么一丢丢的脑细胞就能看懂这条代码,60秒,60分,24小时,7天,根据这几个变量比较那么一小下下就可以进行判断了,然后就大功告成了,做成json格式传回前端就好了,收工收工~

          

你可能感兴趣的:(菜鸟工作问题手记)