Django模板格式化时间后倒计时组件返回NaN如何解决
问题根因
- uk-countdown属性缺少必填的
date:前缀,你现有错误写法仅输出了时间字符串,未遵循组件要求的date: 时间值的属性格式 - 所用的Django date过滤器格式
D d M Y输出的是类似Thu 11 Nov 2021的人类可读格式,UIkit倒计时组件仅支持ISO 8601格式的时间输入,无法解析该格式导致返回NaN
解决方案
直接修改模板中的属性写法即可,使用Django内置的date:'c'过滤器输出标准ISO 8601格式时间,同时补全date: 前缀:
<div class="items-center space-x-2 text-center grid grid-cols-4" uk-countdown="date: {{ event.start|date:'c' }}">
如果你更倾向于在后端提前处理时间格式,也可以修改视图代码:
def event_main(request,pk): event = get_object_or_404(Event, pk=pk) ctx = { 'event':event, 'event_start_iso': event.start.isoformat() } return render(request,'event/event_main.html',ctx)
模板对应写法:
<div class="items-center space-x-2 text-center grid grid-cols-4" uk-countdown="date: {{ event_start_iso }}">
验证方法
页面渲染后右键查看网页源码,确认uk-countdown属性的输出值和你之前硬编码测试可用的格式完全一致即可。
内容的提问来源于stack exchange,提问作者Godda
相关产品推荐
相关产品推荐

