python实现时间显示几秒,几分钟,几小时前

python实现时间显示几秒,几分钟,几小时前

实现思路比较清晰,先获取发布时间和现在时间,将这两个值转换成秒级时间戳,根据两个时间戳的差值,再进行分类讨论,细分为几秒前,几小时前,昨天,几天前以及年月日,具体代码如下。最终的效果参考了微信朋友圈,可能细节方面没有到位,当发表日期距离今天超过 30 天时,直接显示发表时间的年月日。

# value 为 python 中的 datetime 类型数据
def released_time(value):
    """自定义发布时间过滤器"""
    created_time = value.timestamp()  # 把发布时间转换成秒级时间戳
    now_time = datetime.now().timestamp()  # 获取当前时间戳(秒级)
    duration = now_time - created_time
    if duration < 60:  # 小于一分钟
        display_time = "刚刚"
    elif duration < 60 * 60:  # 小于一小时
        display_time = str(int(duration / 60)) + "分钟前"
    elif duration < 60 * 60 * 24:  # 小于24小时
        display_time = str(int(duration / 60 / 60)) + "小时前"
    elif duration < 60 * 60 * 24 * 30:  # 小于30天
        display_time = str(int(duration / (60 * 60 * 24))) + "天前"
    else:
        display_time = value.strftime('%Y-%m-%d')  # 大于30天
    return display_time  # 返回显示结果

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.cangmangai.cn/archives/python实现时间显示几秒几分钟几小时前

Buy me a cup of coffee ☕.