Javascript 如何编写计算日期和更改表颜色的JS?

Javascript 如何编写计算日期和更改表颜色的JS?,javascript,python,html,css,django,Javascript,Python,Html,Css,Django,我试图创建一些JavaScript来计算两个输入日期之间的差异。若结果小于24小时,则表行需要着色为红色 我将在下面给出一些代码 class Campaigns(models.Model): start_date = models.DateField(auto_now=False, auto_now_add=False, verbose_name="Starting Date") end_date = models.DateField(auto_now=Fals

我试图创建一些JavaScript来计算两个输入日期之间的差异。若结果小于24小时,则表行需要着色为红色

我将在下面给出一些代码

class Campaigns(models.Model):

   start_date = models.DateField(auto_now=False, auto_now_add=False, verbose_name="Starting Date")
   end_date = models.DateField(auto_now=False, auto_now_add=False, verbose_name="Ending Date")
   broadcast = models.CharField(choices=BROADCAST_STATUS, blank=False, verbose_name="Broadcast Situtation", max_length=10)
这是我的表格行:

{% for campaign in campaigns %}
   <tr>
     <td class="text-center">{{ campaign.agency }}</td>
     <td class="text-center">{{ campaign.brand }}</td>
     <td class="text-center">{{ campaign.channel }}</td>
     <td class="text-center">{{ campaign.target_group }}</td>
     <td class="text-center">{{ campaign.start_date }}</td>
     <td class="text-center">{{ campaign.end_date }}</td>
     <td class="text-center">{{ campaign.date_to_take_place }}</td>
     <td class="text-center">{{ campaign.day_part }}</td>
     <td class="text-center">{{ campaign.impression }}</td>
     <td class="text-center">{{ campaign.broadcast }}</td>
   </tr>
{% endfor %}
{%用于活动%中的活动]
{{campaign.agency}
{{campaign.brand}}
{{campaign.channel}}
{{campaign.target_group}
{{campaign.start_date}
{{campaign.end_date}
{{campaign.date}
{{campaign.day_part}
{{campaign.impression}}
{{campaign.broadcast}
{%endfor%}
所以我需要计算的是

result = campaign.start_date - campaign.end_date
if result < 24 hours:
    set table row color to red.
result=campaign.start\u日期-campaign.end\u日期
如果结果<24小时:
将表格行颜色设置为红色。

感谢您提供的任何提示/解决方案

如我所见,您不需要JavaScript,因为我在代码中没有看到任何输入。如果开始日期和结束日期之间的差异小于24小时,则只需要简单属性返回True/False

class Campaigns(models.Model):

    start_date = models.DateField(auto_now=False, auto_now_add=False, verbose_name="Starting Date")
    end_date = models.DateField(auto_now=False, auto_now_add=False, verbose_name="Ending Date")
    broadcast = models.CharField(choices=BROADCAST_STATUS, blank=False, verbose_name="Broadcast Situtation", max_length=10)

    @property
    def below_24h(self):
        # check self.end_date - self.start_date here
        # and return True/False
现在在模板中:

{% for campaign in campaigns %}
{% if campaign.below_24h %}
   <tr style="color: red">
{% else %}
   <tr>
{% endif %}
     <td class="text-center">{{ campaign.agency }}</td>
     <td class="text-center">{{ campaign.brand }}</td>
     <td class="text-center">{{ campaign.channel }}</td>
     <td class="text-center">{{ campaign.target_group }}</td>
     <td class="text-center">{{ campaign.start_date }}</td>
     <td class="text-center">{{ campaign.end_date }}</td>
     <td class="text-center">{{ campaign.date_to_take_place }}</td>
     <td class="text-center">{{ campaign.day_part }}</td>
     <td class="text-center">{{ campaign.impression }}</td>
     <td class="text-center">{{ campaign.broadcast }}</td>
   </tr>
{% endfor %}
{%用于活动%中的活动]
{%if campaign.below_24h%}
{%else%}
{%endif%}
{{campaign.agency}
{{campaign.brand}}
{{campaign.channel}}
{{campaign.target_group}
{{campaign.start_date}
{{campaign.end_date}
{{campaign.date}
{{campaign.day_part}
{{campaign.impression}}
{{campaign.broadcast}
{%endfor%}
如果您使用的是
,您可以使用以下内容:

constinputhandler=()=>{
if(Math.floor((Date.parse(dateOne.value)-Date.parse(dateTwo.value))/86400000)){
bg.style.backgroundColor=“红色”;
}否则{
bg.style.backgroundColor=“灰色”;
}
}
dateOne.oninput=inputHandler;
dateTwo.oninput=inputHandler;
inputHandler()
#bg{
宽度:5雷姆;
身高:5雷姆;
填充:1rem;
字体系列:无衬线;
字号:0.8em;
颜色:白色;
}


尝试将正确的输入更改为1970-01-01
我已经尝试了result=self.start\u date-self.end\u date,但ofc没有按照我的要求响应。如何收集日差?请尝试
diff=(self.end\u date-self.start\u date)。days
-它应该返回天数,因此如果它小于1,则表示它小于24h。谢谢,但是,即使结果小于或等于1Did,表行也不会变为红色。如果diff i将您的条件作为一条直线进行处理并成功,则添加
返回True,感谢提示和帮助。我很感激!