我有一个接受日期的函数,并返回当时和当前时间之间的时间差(以秒为单位)。它适用于不到一天的所有事情。但是当我甚至输入一个未来一年的日期时,它仍会返回大约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年的参数运行它,我的数字太低了。
任何人都有见解?
答案 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