简体   繁体   English

从日期时间字段中减去整数值

[英]substract integer value from datetime field

I want to subtract an integer value from a datetime field. 我想从datetime字段中减去一个整数值。 Here date_joined is a datetime field and age is an integer field. 这里date_joineddatetime字段,age是整数字段。

views.py views.py

def index(request):  
    profiles = profiles.objects.all()
    for profile in profiles: 
        age = person.age
        date_joined = person.date_joined
        date_of_birth = date_joined - age
        p = date_of_birth(date_of_birth = date_of_birth,activated = 1)
        p.save()

models.py models.py

class profiles(models.Model):
    date_joined =  models.DateTimeField (max_length=1)
    age = models.IntegerField()

Use: 采用:

date_joined - (datetime.timedelta(365) * age)

To subtract age years from date_joined . date_joined减去age

Just a note that this is a good quick-and-dirty solution, but is not very robust. 请注意,这是一个很好的快捷解决方案,但不是很可靠。 Consider the following output: 考虑以下输出:

>>> datetime.datetime(2013, 12, 12) - datetime.timedelta(365) * 15
datetime.datetime(1998, 12, 16, 0, 0)

As you can see, because of leap years (years that actually have 366 days), the result is 4 days after the date we actually wanted. 如您所见,由于leap年(实际上有366天的年份),结果是我们实际想要的日期之后的4天。 A more robust solution would be: 一个更强大的解决方案是:

date_joined.replace(year = date_joined.year - age)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM