计算一天之内不工作的两个日期之间的秒数差异

时间:2013-05-01 09:19:25

标签: python datetime

我有一个接受日期的函数,并返回当时和当前时间之间的时间差(以秒为单位)。它适用于不到一天的所有事情。但是当我甚至输入一个未来一年的日期时,它仍会返回大约84,000秒的数字(一天大约有86,400秒)。

def calc_time(date):
    future_date = str(date)
    t_now = str(datetime.utcnow())
    t1 = datetime.strptime(t_now, "%Y-%m-%d %H:%M:%S.%f")
    t2 = datetime.strptime(future_date, "%Y-%m-%d %H:%M:%S.%f")
    return ((t2-t1).seconds)

即使我使用日期为2014年的参数运行它,我的数字太低了。

任何人都有见解?

3 个答案:

答案 0 :(得分:5)

阅读datetime.timedelta文档。

  

所有参数都是可选的,默认为0.参数可以是整数,   长期或浮动,可能是积极的或消极的。

     

内部只存储了几天,几秒和几微秒。参数   转换为这些单位:

     

毫秒转换为1000微秒。一分钟转换   到60秒。一小时转换为3600秒。一周是   转换为7天。然后是天,秒和微秒   标准化,以便表示是唯一的,

     

0 <=微秒&lt; 1000000 0&lt; =秒&lt; 3600 * 24(数量   一天之内的秒数)   -999999999&lt; = days&lt; = 999999999

解决方案是使用.total_seconds()代替.seconds

答案 1 :(得分:0)

以下代码将返回两个给定日期之间的天数

$daysremaining = ceil(abs(strtotime($yourdate) - strtotime($currentdate)) / 86400);

并以秒为单位使用

$secondsremaining = strtotime($yourdate) - strtotime($currentdate);
如果有用,

upvote

答案 2 :(得分:0)

稀释。显然.seconds只会返回一天范围内的秒数差异。

。秒将包括小时和分钟,所以我需要将其添加到.days * 86400以获得总秒数。

感谢大家的帮助! ; D