momentjs只有时间价值

时间:2018-05-24 16:02:21

标签: javascript momentjs

我使用momentjs来处理日期和时间

let dateAndTime = moment(component.props.data.value, moment.ISO_8601);
let date = '',
  time = '';
if (dateAndTime) {
  if (moment(dateAndTime, 'YYYY-MM-DD', true).isValid()) {
    date = moment(dateAndTime).format('YYYY-MM-DD');
  }

  if (moment(dateAndTime, 'HH:mm', true).isValid()) {
    time = moment(dateAndTime).format('HH:mm');
  }
}

如果component.props.data.value包含2018-05-22 14:45之类的日期和时间,或者只包含2018-05-22之类的日期,则此代码可以正常运行。问题有时component.props.data.value只包含14:45之类的时间,因此moment(component.props.data.value, moment.ISO_8601)不会创建时刻对象,而下面的代码也不会执行。有没有办法只处理案件的时间?

1 个答案:

答案 0 :(得分:1)

您可以使用reprex package,正如文档所说:

  

如果您不知道输入字符串的确切格式,但知道它可能是众多格式之一,则可以使用格式数组。

     

这与moment(String, String[])相同,只是尝试将输入与多种格式匹配。

您的第一行代码可能如下所示:

valueField