Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Momentjs弃用错误和不同的浏览器功能_Javascript_Reactjs_Momentjs - Fatal编程技术网

Javascript Momentjs弃用错误和不同的浏览器功能

Javascript Momentjs弃用错误和不同的浏览器功能,javascript,reactjs,momentjs,Javascript,Reactjs,Momentjs,我得到了这个错误: Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be

我得到了这个错误:

Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments: 
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 1-June-2017, _f: undefined, _strict: undefined, _locale: [object Object]
Error
    at Function.createFromInputFallback (http://localhost/client.min.js:46682:95)
    at configFromString (http://localhost/client.min.js:48540:12)
    at configFromInput (http://localhost/client.min.js:48909:10)
    at prepareConfig (http://localhost/client.min.js:48892:10)
    at createFromConfig (http://localhost/client.min.js:48859:41)
    at createLocalOrUTC (http://localhost/client.min.js:48946:13)
    at createLocal (http://localhost/client.min.js:48950:13)
    at Moment.isBefore (http://localhost/client.min.js:49517:49)
    at http://localhost/client.min.js:46163:87
    at Array.map (native)
因为代码被最小化了,我看不出到底是什么导致了它,而且有很多代码,但可能存在于以下两种情况中:

    this.state = {
    bookedDays: this.props.bookedDays,
    today: this.props.value != "" ? moment.unix(this.props.value.substr(0, this.props.value.indexOf('|'))/1000) : moment(),
    selectedFromDate: this.props.value != "" ? moment.unix(this.props.value.substr(0, this.props.value.indexOf('|'))/1000) : moment(),
    selectedToDate: this.props.value != "" ? moment.unix(this.props.value.substr(this.props.value.indexOf('|')+1)/1000) : moment(),
    whichDate: 0
};



  var liClasses = classNames({
    'whiteDate': this.state.whichDate == 0 && ((this.state.selectedFromDate.isBefore(date, 'day') && this.state.selectedToDate.isAfter(date, 'day')) || this.state.selectedFromDate.isSame(date, 'day') || this.state.selectedToDate.isSame(date, 'day'))
  });
请注意,该代码仅在Chrome中有效,在正确填充类时,Firefox、IE和Edge似乎都不喜欢它。

问题可能是代码第二部分中的日期是一个字符串,函数无法识别其格式

你应该使用。从错误消息中可以看出,您将2017年6月1日作为输入值传递,因此您必须使用:

moment(date, 'D-MMMM-YYYY')
您的代码如下所示:

var liClasses = classNames({
  'whiteDate': this.state.whichDate == 0 && 
    ((this.state.selectedFromDate.isBefore(moment(date, 'D-MMMM-YYYY'), 'day') && 
    this.state.selectedToDate.isAfter(moment(date, 'D-MMMM-YYYY'), 'day')) ||
    this.state.selectedFromDate.isSame(moment(date, 'D-MMMM-YYYY'), 'day') || 
    this.state.selectedToDate.isSame(moment(date, 'D-MMMM-YYYY'), 'day'))
});

谢谢它增加了固定它的力矩部分。供将来阅读此补丁的读者参考,我还填充了这一天,以确保它始终是两个数字,比如'01'@Wayneio-it&39;s不一定需要填充日期,因为D标记代表一个月中的1位数的日期,所以使用DD解析2位数的日期。