vue.js - 如果两个日期是同一天,则无法正常工作

标签 vue.js

如果是今天或将来,我想显示截止日期,如果日期已经过去,我想显示“关闭”一词。

我有以下代码,它在截止日期和今天的日期相同时运行。

HTML

<div class="deadline-inner">
              <p
                v-if="Date.now() > new Date(deadline)"
                class="showclosedtitle"
              >
                <i class="fa fa-calendar-check-o" aria-hidden="true"></i>Closed
              </p>
              <p v-else>
                <i class="fa fa-calendar-check-o" aria-hidden="true"></i>
                <strong>Deadline: </strong>{{ deadline }}
              </p>
            </div>

截止日期采用以下格式:“2021 年 12 月 21 日”

我也试过:

 v-if="Date.now() >= new Date(deadline)"
 v-if="Date.now() > +1 new Date(deadline)"

但如果截止日期和今天的日期相同,它们都会显示语句的“其他”部分。感谢您的帮助。

最佳答案

尝试使用“一天结束”时间

在浏览器控制台中输入您的日期(在撰写本文时):

> new Date('21 December 2021');
Tue Dec 21 2021 00:00:00

> new Date();
Tue Dec 21 2021 12:19:09

所以 new Date() 总是“现在”到秒(实际上是毫秒)。
您的比较日期总是从“00:00:00”开始。
所以如果你想知道new Date()是否晚于deadline,添加23:59:59作为时间:

new Date() > new Date('21 December 2021 23:59:59');

这在明天之前都是错误的。

因此在您的情况下,您可以在 deadline 本身解决它或手动添加时间:

v-if="Date.now() > new Date(deadline + ' 23:59:59')"

关于vue.js - 如果两个日期是同一天,则无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70434345/

相关文章:

vue.js - 如何在 Vue 3 中获取数据?

javascript - Vue : Append component to element

javascript - 有新数据时如何更新图表?

javascript - 最近添加的属性没有出现在 DOM 中

javascript - 使用 Node 提供 Vue 应用程序时,构建会导致空 HTML 页面出现语法错误

javascript - 在 .vue 文件中包含 JS 文件

javascript - 在编辑表单中单击更新按钮之前如何停止更新数据?

javascript - 在 Vuejs 上切换单选按钮后,所选文件消失

javascript - vue js 无法正确显示 props 组件

vue.js - 如何将 vuestorefront 与 shopify 集成