当我在python中减去两个datetime对象时,它只考虑不花一天时间

AKH*_*HEW 4 python datetime

我有两个日期时间对象

`statrt_time` and `end_time`
Run Code Online (Sandbox Code Playgroud)

我的代码是

if self.book_from and  self.book_to:
        fmt = '%Y-%m-%d %H:%M:%S'
        s = datetime.strptime(self.book_from,fmt)   #start date
        e = datetime.strptime(self.book_to,fmt)   #end date
        diff = e - s

        total_seconds=diff.seconds
        time_diff = (total_seconds/3600.0)
        no_of_units = (time_diff/4)
        if(e<s):
            self.units = 0
        else:
            self.units = math.ceil(no_of_units)
Run Code Online (Sandbox Code Playgroud)

在这里,当我在同一天减去时间时,它给出了正确的差异.但是当这一天改变时,它不是计算日差,而只是计算时差.我怎样才能增加日差?

jus*_*alf 6

total_seconds()而不是seconds.

timedelta.seconds只显示差异的"第二"部分,同时total_seconds()显示差异的持续时间(秒).有关详细信息,请参阅Mureinik的答案.

所以,使用这个:

total_seconds=diff.total_seconds()
Run Code Online (Sandbox Code Playgroud)