python - كيف يمكنني طرح تاريخين في Django / Python؟




2 Answers

يمكنك فقط طرح التواريخ مباشرة ، والتي ستؤدي إلى كائن datetime.timedelta :

dt = weight_now.weight_date - weight_then.weight_date

timedelta كائن timedelta على حقول للأيام والثواني و microseconds. من هناك ، يمكنك فقط القيام بالرياضيات المناسبة. فمثلا:

hours = dt.seconds / 60 / 60    # Returns number of hours between dates
weeks = dt.days / 7             # number of weeks between dates

أنا أعمل على تعقب القليل من اللياقة البدنية من أجل تعليم نفسي دجانجو. أريد الرسم بياني وزني مع مرور الوقت ، لذلك قررت استخدام بيثون غوغل المخططات. تتطلب مخططات Google أن تقوم بتحويل التاريخ الخاص بك إلى إحداثيات الفأس. للقيام بذلك ، أريد أخذ عدد الأيام في مجموعة البيانات الخاصة بي عن طريق طرح أول وزن في آخر وزن ثم استخدام ذلك لمعرفة الكوابل x (على سبيل المثال ، يمكن أن أكون 100 بالنتيجة وزيادتها x التنسيق بواسطة الرقم الناتج لكل تنسيق y.)

على أي حال ، أنا بحاجة لمعرفة كيفية طرح كائنات dangetime datetime من بعضها البعض وحتى الآن ، وأنا ضرب على كل من جوجل وهنا في كومة. أعرف لغة PHP ، لكني لم أتعامل أبدًا مع برمجة OO ، لذا يرجى إعفاء جهلي. إليكم ما تبدو عليه النماذج الخاصة بي:

class Goal(models.Model):
    goal_weight = models.DecimalField("Goal Weight", 
        max_digits=4, 
        decimal_places=1)
    target_date = models.DateTimeField("Target Date to Reach Goal")
    set_date = models.DateTimeField("When did you set your goal?")
    comments = models.TextField(blank=True)

    def __unicode__(self):
        return unicode(self.goal_weight)

class Weight(models.Model):
    """ Weight at a given date and time. """

    goal = models.ForeignKey(Goal)
    weight = models.DecimalField("Current Weight",
        max_digits=4, 
        decimal_places=1)
    weigh_date = models.DateTimeField("Date of Weigh-In")
    comments = models.TextField(blank=True)

    def __unicode__(self):
        return unicode(self.weight)

    def recorded_today(self):
        return self.date.date() == datetime.date.today()

أي أفكار حول كيفية المضي قدما في طريقة العرض؟ شكرا جزيلا!




لاحظ أن الطرح لن ينجح في حال كان لموعدَي التاريخ اختلاف في وعي مختلف ، على سبيل المثال ، واحد مع tzinfo والآخر بدون (أصلية).




Related

python django datetime date time