2017-03-20 10 views
0

検索後、私の問題に対する答えを見つけることができませんでした。私はこのモデルを持っています:djangomodelから返されるdatetimeフィールドを減算または追加します

class Subtask(models.Model): 
    Created_subtask_date = models.DateTimeField(default=timezone.now, null=True) 
    subflag = models.BigIntegerField(default=0, null=True) 

    def __str__(self): 
     return str(self.Created_subtask_date) 

このオブジェクトからわかるように、このオブジェクトは、サブタスクの作成日である文字列を返します。

私の問題は、このモデルの2つのオブジェクト(2つのdatetimes)をどのように差し引いて追加することができるかということです。たとえば、私はこのタスクの日付と等しいsubtask1を持っています。次に別の日付を持つ別のオブジェクト(たとえばサブ2)があります。整数に変換しようとしましたが、成功しませんでした。

すべてのヘルプは非常に

+0

なぜ整数に変換するのですか?あなたは何を達成しようとしていますか? –

+0

私は2つのオブジェクトの時間差を見つけようとしています。そのタイプのdatetimesは文字列です。私は 'int(self.Created_subtask_date)'で 'str(self.Created_subtask_date)'を変更しようとしましたが、もちろんエラーが出ます。 –

答えて

0

あなたが時間差を取得したい場合、あなたはそれをそのように実行する必要があります。timedelta

from datetime import timedelta  

date1 = subtask1.Created_subtask_date 
date2 = subtask2.Created_subtask_date 

diff = date1 - date2 

print(type(diff)) # <class 'datetime.timedelta'> 

print(diff.seconds) 
print(diff.days) 

詳しいです。

+0

もう一度ありがとう.. –

1

を高く評価しているあなたは、整数に変換する必要はありません..あなたは簡単に二つの日付の違いを得ることができます。たとえば

from datetime import datetime 
d = datetime(2017,3,17,12,50,59) 
d2 = datetime.now() 

e = d2 - d 
print(e.days,e.seconds) # output 3 (days) 41569 (seconds) 

希望すると助かります。

+0

ありがとう!それは素晴らしいようです –

関連する問題