Thêm lên các điều khoản của tuple timedelta với nhân đầy đủ sẽ cho bạn câu trả lời của bạn. diff.days*24*60*60 + difference.seconds
from datetime import datetime
now = datetime.now()
...
later = datetime.now()
diff = later-now
diff_in_seconds = diff.days*24*60*60 + diff.seconds
Biến 'diff' là một đối tượng timedelta đó là một tuple của (ngày, giây, micro) như được giải thích một cách chi tiết ở đây https://docs.python.org/2.4/lib/datetime-timedelta.html. Tất cả các đơn vị khác (giờ, phút ..) được chuyển đổi thành định dạng này.
>> diff = later- now
>> diff
datetime.timedelta(0, 8526, 689000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> 8527
Một cách khác để xem nó sẽ là nếu thay vì sau này (do đó có chênh lệch thời gian tích cực), thay vào đó bạn có chênh lệch thời gian âm (trước đó) vẫn giống như trong ví dụ trước
>> diff = earlier-now
>> diff
datetime.timedelta(-1, 77873, 311000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> -8527
Do đó, nếu chúng tôi chắc chắn thời hạn dưới 1 ngày, cần phải tính đến thời hạn trong ngày, vì đó là một thuật ngữ quan trọng trong trường hợp chênh lệch thời gian âm.
Điều này cho biết một đối số "TypeError: int() phải là một chuỗi, một đối tượng giống byte hoặc một số, không phải lỗi" datetime.timedelta '"trong Python3. Xem câu trả lời của Robert Longson. – typoerrpr