首页 > 解决方案 > 我无法使用 MomentJs 和 Vue 比较我的日期

问题描述

我想知道我的持续时间是否 > 0。我使用 MomentJs 和 Vue 使用以下代码获取我的持续时间:

 moment3: function (date) {
  var now = moment();
  var day = moment(date);
  var duration = day.diff(now);
   return parseInt(duration);
  },

我正确地得到了持续时间(例如 2987546325)。但是这段代码仍然不起作用。

<a v-if="event.time | moment3 > 0"> Do somethingHere </a>

谢谢你的帮助。

标签: vue.jsmomentjs

解决方案


我假设您正在尝试moment3用作 Vue 过滤器功能。

这里有两个问题:

  1. 您不能在v-if表达式中使用过滤器函数。它们仅在 a {{ ... }}orv-bind表达式中可用。
  2. 除了函数的参数或另一个过滤器函数之外,您不能在过滤器函数之后放置任何内容。因此,> 0即使您在 a{{ ... }}或中,也不允许使用v-bind

https://vuejs.org/v2/guide/filters.html

在这种情况下,该|字符将被解释为 JavaScript 的按位 OR 运算符。

您最好只使用一种方法。所以moment3在你的组件内部定义methods,然后使用v-if="moment3(event.time) > 0".


推荐阅读