我有一个功能,getHoursSince()
:
def getHoursSince (date):
prior = datetime.datetime.now() - datetime.timedelta(days=date)
priorHour = prior.hour
hoursSinceDate = ...
return hoursSinceDate
所以,我可以得到一个日期对象,给定一个常数值,即如果yesterday = 1
,我可以调用getHoursSince(yesterday)
。我不知道该怎么做才能获得datetime.datetime.now()
和priorHour
变量之间的小时数 - 任何想法?
答案 0 :(得分:4)
你是以错误的方式去做的;您只需将timedelta()
转换为小时:
def getHoursSince(date):
return int(datetime.timedelta(days=date).total_seconds() // 3600)
给出:
>>> getHoursSince(1)
24
>>> getHoursSince(1.5)
36
>>> getHoursSince(2)
48
>>> getHoursSince(3)
72
但你也可以基于简单算术:
def getHoursSince(date):
return int(24 * date)
答案 1 :(得分:0)
timedelta.total_seconds()
documentation说:
对于除秒以外的间隔单位,请直接使用除法表 (例如
td / timedelta(microseconds=1)
)。
这是这种情况下的样子:
def getHoursSince(date):
return datetime.timedelta(days=date) // datetime.timedelta(hours=1)