我试图比较我的选择日期和计划日期,这是我的飞机日期代码:
fmt = '%Y-%m-%d'
if self.date_plant:
from_date = self.date_plant
d1 = datetime.strptime(str(from_date), fmt)
date_after_month = datetime.date(d1) + relativedelta(months=1)
cetak = date_after_month.strftime(fmt)
self.nursery_plandate = cetak
这是我要比较的代码:
fmt = '%Y-%m-%d'
if self.date:
fromdt = self.date
plan = self.nursery_plandate
rang = int(7)
d1 = datetime.strptime(str(fromdt), fmt)
d2 = plan.day
d3 = d1.day
if d1 and plan:
if d1 == plan:
self.nursery_information = '2' # pass
elif d3 < d2:
self.nursery_information = '0' # untimely
elif d3 > d2:
self.nursery_information = '1' # late
else:
if d3 >= rang:
self.nursery_information = '1' # late
elif d3 <= rang:
self.nursery_information = '0' # untimely
else:
self.nursery_information = '2' # late
这是我的错误:
line 166, in dateinformation
d2 = plan.day
AttributeError: 'unicode' object has no attribute 'day'
答案 0 :(得分:0)
self.nursery_plandate
不是有效的日期时间/日期对象,因此您无法访问它的属性,您需要从该值创建有效的日期时间对象,然后您可以访问它的属性。
fmt = '%Y-%m-%d'
if self.date:
fromdt = self.date
plan = datetime.strptime(str(self.nursery_plandate),fmt)
rang = int(7)
d1 = datetime.strptime(str(fromdt), fmt)
d2 = plan.day
d3 = d1.day
if d1 and plan:
if d1 == plan:
self.nursery_information = '2' # pass
elif d3 < d2:
self.nursery_information = '0' # untimely
elif d3 > d2:
self.nursery_information = '1' # late
else:
if d3 >= rang:
self.nursery_information = '1' # late
elif d3 <= rang:
self.nursery_information = '0' # untimely
else:
self.nursery_information = '2' # late