如何测试变量是否是Moment.js对象?

时间:2016-04-06 16:38:50

标签: javascript momentjs

我的应用程序有一个HTML表单,其中一些输入从后端填充,其他输入由用户输入(在time输入中)。当用户更改值时,onChange函数会遍历每个输入。

从后端填充的输入将转换为moment个对象,用户输入的日期仅为字符串。这意味着onChange函数遇到一些moment对象和一些字符串。我需要知道哪些输入是moment个对象,哪些不是。

如果变量是moment对象,测试的推荐方法是什么?

我注意到moment个对象有_isAMomentObject属性,但我想知道是否有另一种方法可以测试变量是否为moment对象。

我尝试的另一个选项是在变量上调用moment。这会将string变量转换为moment个对象,但似乎不会影响现有的moment个对象。

3 个答案:

答案 0 :(得分:73)

为了这个目的,时刻有isMoment method。除非您知道要查找的内容,否则在文档中查找并不是特别容易。

它首先检查instanceof然后失败(例如在某些子类或跨领域情况下)它将测试_isAMomentObject属性。

答案 1 :(得分:29)

您可以检查它是否为instanceof时刻:

moment() instanceof moment; // true

答案 2 :(得分:3)

  

moment()瞬间实例;

将始终为真,因为如果您拥有

  • 瞬间的时刻(未定义)
  • moment(“ hello”)瞬间实例

您始终在创建时刻对象。 所以唯一的办法就是这样检查

  • moment(property).isValid()