Javascript 检查moment.js中的时间格式是否有效

Javascript 检查moment.js中的时间格式是否有效,javascript,momentjs,Javascript,Momentjs,js可以根据给定的格式格式化时间 然而,有些格式似乎无效。例如,提供了YYYY[转义]YYYY格式。但是,如果指定YYYY[escape,则时间的格式类似于2014[121e],显然e和s是根据格式指南转换的,但格式非常无效 是否有方法检查所提供的格式是否有效,例如,如果结果字符串example format.containsHours中会显示某些方面,请注意,如果HH不是格式字符串的一部分,但例如LLLL将隐式打印小时数,则该方法也应返回true 到目前为止,我在文档中没有发现任何内容。矩的验

js可以根据给定的格式格式化时间

然而,有些格式似乎无效。例如,提供了YYYY[转义]YYYY格式。但是,如果指定YYYY[escape,则时间的格式类似于2014[121e],显然e和s是根据格式指南转换的,但格式非常无效

是否有方法检查所提供的格式是否有效,例如,如果结果字符串example format.containsHours中会显示某些方面,请注意,如果HH不是格式字符串的一部分,但例如LLLL将隐式打印小时数,则该方法也应返回true


到目前为止,我在文档中没有发现任何内容。

矩的验证功能仅限于根据给定的格式验证给定的日期/时间输入字符串是否有效。假定开发人员知道这些格式。它不打算接受来自变量源(如end us)的格式字符串本身呃


因此,没有任何方法可以确认格式字符串是否有效。

矩的验证功能仅限于根据给定的格式验证给定的日期/时间输入字符串是否有效。假定开发人员已知格式。它不打算从变量中接受格式字符串本身源,例如最终用户

因此,没有方法确认格式字符串是否有效。

这可能会起作用:

function isValidDate(date) {
   return (moment(date).toDate().toString() !== "Invalid Date")
}
这可能会起作用:

function isValidDate(date) {
   return (moment(date).toDate().toString() !== "Invalid Date")
}
使用此功能

function checkIfDateIsValidUsingMoment(dateString,format)
{
  var m=moment(dateString,format);
  return m._pf.charsLeftOver ==0 && m._pf.unusedTokens.length==0 && m._pf.unusedInput.length==0 && m.isValid();
}
上述函数采用datestring和格式,矩对象具有isvalid方法,但对于严格的日期验证,其可用性较低

矩对象具有_pf,它存储有关解析日期的信息

charsLeftOver:不匹配的字符数表示额外字符,无效日期

unusedInput:包含未使用输入详细信息的数组

unusedTokens:包含未使用令牌详细信息的数组

例如:

moment("25 october 2016aaaa","DD MMM YYYY")
此对象将aaaa作为无效字符,因此它在_pfobject中可用

您可以使用这些详细信息验证日期。

使用此功能

function checkIfDateIsValidUsingMoment(dateString,format)
{
  var m=moment(dateString,format);
  return m._pf.charsLeftOver ==0 && m._pf.unusedTokens.length==0 && m._pf.unusedInput.length==0 && m.isValid();
}
上述函数采用datestring和格式,矩对象具有isvalid方法,但对于严格的日期验证,其可用性较低

矩对象具有_pf,它存储有关解析日期的信息

charsLeftOver:不匹配的字符数表示额外字符,无效日期

unusedInput:包含未使用输入详细信息的数组

unusedTokens:包含未使用令牌详细信息的数组

例如:

moment("25 october 2016aaaa","DD MMM YYYY")
此对象将aaaa作为无效字符,因此它在_pfobject中可用

您可以使用这些详细信息验证日期