gpt4 book ai didi

python - Python中的自然/相对天数

转载 作者:IT老高 更新时间:2023-10-28 21:48:50 26 4
gpt4 key购买 nike

我想要一种在 Python 中显示过时项目的自然时间的方法。类似于 Twitter 显示“片刻前”、“几分钟前”、“两小时前”、“三天前”等消息的方式。

Django 1.0 在 django.contrib 中有一个“humanize”方法。我没有使用 Django 框架,即使我使用了,它也比我想要的更受限制。

请让我(以及 future 的几代搜索者)知道是否已经有一个好的工作解决方案。由于这是一项足够普遍的任务,我想一定有什么。

最佳答案

具体的 Twitter 日期很有趣,因为它们仅在第一天是相对的。 24 小时后,它们只显示月份和日期。一年后,他们开始显示一年的最后两位数字。这是一个示例函数,它的作用更类似于 Twitter 相对日期,尽管它也总是在 24 小时后显示年份。它仅适用于美国语言环境,但您可以随时根据需要进行更改。

# tested in Python 2.7
import datetime
def prettydate(d):
diff = datetime.datetime.utcnow() - d
s = diff.seconds
if diff.days > 7 or diff.days < 0:
return d.strftime('%d %b %y')
elif diff.days == 1:
return '1 day ago'
elif diff.days > 1:
return '{} days ago'.format(diff.days)
elif s <= 1:
return 'just now'
elif s < 60:
return '{} seconds ago'.format(s)
elif s < 120:
return '1 minute ago'
elif s < 3600:
return '{} minutes ago'.format(s/60)
elif s < 7200:
return '1 hour ago'
else:
return '{} hours ago'.format(s/3600)

关于python - Python中的自然/相对天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/410221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com