2011-11-21 96 views
5

我有一個包含文章的數據庫表,這些文章中的每一個都有一個提交日期。我需要計算該文章的日期和時間已發表在數據庫中,如:Python - 如何計算自X日期以來的經過時間?

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

已經有一些代碼,我可以重複使用要做到這一點?我在谷歌搜索,但也許我沒有使用正確的話。

任何線索可以幫助我嗎?

最好的問候,

回答

9

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

當你從另一個日期時間中減去一個日期時間時,會得到一個timedelta對象。您可以使用total_seconds()以秒爲單位獲取持續時間,並使用除法將其轉換爲小時和天數。那麼你唯一的工作就是將其格式化爲可讀的字符串。

+0

在一個datetime.timedelta對象上調用的FWIW,str()會創建一個格式如下的字符串:'4 days,23:58:57.256000'我認爲沒有辦法改變格式,但是如果它是可接受的格式。 – Jeremiah

+0

優秀的答案,但請注意timedelta類的相關方法是total_seconds –

+0

@ShmilTheCat,感謝您注意到我做了一個更正。 –

4

我提交的日期轉換爲datetime,然後使用類似https://gist.github.com/207624datetime轉化爲人性化的字符串。

+1

Downvoter:你能解釋爲什麼你認爲這是一個不好的答案,所以我可以改善我未來的答案? –

+0

嗨。你的代碼的第9行有一個簡單的錯誤。它說:'dt = otherdate - now'但真的應該是另一種方式。也許這就是downvoter投票的原因。 – Firebowl2000