获取提供给 momentjs 的输入的函数

Sam*_*ami 5 javascript momentjs

是否有任何函数可以获取提供给 moment() 的输入

在下面的示例中, inputDate 变为 null。

var date = moment("invalid date");
if(!data.isValid()){
  return { message: "Invalid date", inputDate: date }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用内部结构 ie 访问输入,date._i但想知道是否有任何函数可以返回提供给 moment 构造函数的输入。

Vin*_*zoC 7

您可以使用 creationData()

创建 moment 对象后,可以使用以下creationData()方法访问所有输入:

moment("2013-01-02", "YYYY-MM-DD", true).creationData() === {
    input: "2013-01-02",
    format: "YYYY-MM-DD",
    locale: Locale obj,
    isUTC: false,
    strict: true
}
Run Code Online (Sandbox Code Playgroud)

这是一个活生生的例子:

moment("2013-01-02", "YYYY-MM-DD", true).creationData() === {
    input: "2013-01-02",
    format: "YYYY-MM-DD",
    locale: Locale obj,
    isUTC: false,
    strict: true
}
Run Code Online (Sandbox Code Playgroud)
var date = moment("invalid date", moment.ISO_8601);
console.log(date.creationData().input);
Run Code Online (Sandbox Code Playgroud)

作为旁注:

  • 我用moment.ISO_8601我的片段,以防止弃用警告,如图所示这里
  • 这里问了一些非常相似的问题(但不是重复的)。