【问题标题】:Python - How to calculate the elapsed time since X date?Python - 如何计算自 X 日期以来经过的时间?
【发布时间】:2012-01-03 10:38:42
【问题描述】:

我有一个包含文章的数据库表,每一篇文章都有一个提交日期。我需要计算文章在数据库中发表后的天数和小时数,例如:

This article has been published 4 hours ago.
This article has been published 3 days and 4 hours ago.

已经有一些我可以重复使用的代码来做到这一点?我在谷歌上搜索过,但也许我没有使用正确的词。

有什么线索可以帮到我吗?

最好的问候,

【问题讨论】:

    标签: python elapsedtime


    【解决方案1】:

    看看datetime package,它有你需要的一切。

    当您从另一个日期时间中减去一个日期时间时,您会得到一个 timedelta 对象。您可以使用total_seconds() 以秒为单位获取持续时间,并使用除法将其转换为小时和天。那么你唯一的工作就是把它格式化成一个可读的字符串。

    【讨论】:

    • FWIW, str() 在 datetime.timedelta 对象上调用会创建一个格式如下的字符串:'4 days, 23:58:57.256000' 我认为没有办法更改格式,但是如果它是可接受的格式,它会为您节省一些工作。
    • 很好的答案,但请注意timedelta类的相关方法是total_seconds
    【解决方案2】:

    我会将提交的日期转换为datetime,然后使用https://gist.github.com/207624 之类的东西将datetime 转换为人性化字符串。

    【讨论】:

    • 投反对票的人:您能解释一下为什么您认为这是一个糟糕的答案,以便我可以改进我未来的答案吗?
    • 嗨。您在代码的第 9 行有一个简单的错误。它说:dt = otherdate - now 但实际上应该反过来。也许这就是反对者投反对票的原因。
    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2011-02-24
    • 2014-12-20
    • 2017-03-20
    • 1970-01-01
    相关资源
    最近更新 更多