django计算剩余时间和状态(众筹项目的时间倒计时):

本文介绍了一种计算众筹项目剩余时间的方法,并通过实例演示了如何在后端计算剩余时间及当前状态,最后返回到前端进行展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法1:

starttime = project.enddate #定义起始时间,enddate为model定义的字段,project是实例化model中Project类后的实例

endtime = datetime.now() #导入datetime 定义结束时间

starttime = datetime.strptime(starttime.strftime('%Y-%m-%d'),'%Y-%m-%d')#必须将时间先格式化

endtime = datetime.strptime(endtime.strftime('%Y-%m-%d'),'%Y-%m-%d')

remain_time = (starttime-endtime).days#起始时间减去结束时间

return 。。。#将starttime返回给前端

{{ project.remain_time }}#前端渲染

#自动计算当前的状态

def surplusTime(self):

# 计算众筹剩余时间

now_day=datetime.datetime.now().strftime('%Y-%m-%d')

old_day = self.daploydate.strftime('%Y-%m-%d')

day1 = datetime.datetime.strptime(now_day, '%Y-%m-%d')

day2 = datetime.datetime.strptime(old_day, '%Y-%m-%d')

if day1 < day2:

self.status = 1

return '众筹未开始'

else:

da_day = day1 - day2

self.surplustime = self.day - da_day.days

方法2:

model 中:

def get_time(self):

starttime = self.enddate

endtime = datetime.now()

starttime = datetime.strptime(starttime.strftime('%Y-%m-%d'), '%Y-%m-%d')

endtime = datetime.strptime(endtime.strftime('%Y-%m-%d'), '%Y-%m-%d')

remain_time = (starttime - endtime).days

if remain_time >0:

self.status =1 #model中用choice字段定义0,1,2,3为当前的状态(0,未开始,1,即将开始,2,众筹中,3,众筹结束)

elif remain_time <=0:

if self.money <= self.supportmoney:

self.status = 2

else:

self.status =3

return remain_time

前端渲染状态:

{{ project.get_status_display}}//get_choice字段_display model 中带choice的字段用法

前端渲染剩余时间:

{{ project.get_time }}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值