Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 比较两个日期-在react redux中的验证中,结束日期应大于开始日期_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 比较两个日期-在react redux中的验证中,结束日期应大于开始日期

Javascript 比较两个日期-在react redux中的验证中,结束日期应大于开始日期,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我正在使用日期验证,但它不适用于我,因为datepicker验证是在选择小于日期后锁定我的日历,所以您可以建议我如何解决此问题 这是我的密码: index.js import React from 'react'; import moment from 'moment'; const processDate = date => date ? moment(date, date.length === 10 ? 'DD/MM/YYYY' : null).format('MM

我正在使用日期验证,但它不适用于我,因为datepicker验证是在选择小于日期后锁定我的日历,所以您可以建议我如何解决此问题

这是我的密码:

index.js

import React from 'react';
import moment from 'moment';

const processDate = date =>
    date ? moment(date, date.length === 10 ? 'DD/MM/YYYY' : 
    null).format('MM/DD/YYYY') : null;
class Skills extends React.Component {
    static propTypes = {
        skills: PropTypes.array.isRequired,
    };
    onSubmitSkill(formData) {
        const { paramValue } = this.props;
        const skill = Object.assign({ employeeId: paramValue }, 
        formData);
        skill.startDate = processDate(skill.startDate);
        skill.endDate = processDate(skill.endDate);
    }
}
SkillsForm.js

import React, { Component } from 'react';
import { Input, DatePicker, Select } from 'components/Form';
import moment from 'moment';
import skillsValidations from './validations.js';

const selector = formValueSelector('academicYear');
const processDate = date => (date ? moment(date, date.length === 10 ? 'DD/MM/YYYY' : null) : null);

@connect(state => ({
    startDate: selector(state, 'startDate'),
    perm: state.auth.user.permissions,
}))
@reduxForm({
    form: 'skills',
    validate: skillsValidations,
})
export default class SkillsForm extends Component {
    constructor(props) {
        super(props);

        const defaultValues =
            (props.skill &&
                Object.assign(
                    {
                        startDate: processDate(props.skill.startDate),
                        endDate: processDate(props.skill.endDate),
                    },
                    props.skill,
                )) ||
            {};

        this.props.initialize(defaultValues);
    }

    render() {
       return (
            <form
                    <Field
                        component={DatePicker}
                        name="startDate"
                        label="Start Date"
                        placeholder="select date"
                        required
                    />
                    <Field
                        component={DatePicker}
                        label="End Date"
                        name="endDate"
                        placeholder="End Date"
                    />
            </form>
        );
    }
}
我正在使用此代码,但它不适用于比较两个日期基本上结束日期必须大于开始日期,我正在使用日期验证,但它对我不起作用,因为日期选择器验证在选择小于日期后锁定我的日历,日历不起作用,然后我没有选择任何日期,然后我必须更改日历月并选择日期我不知道这是问题所在,我不知道是什么问题,实际上我使用的是react 16,我使用的是react datepicker版本1.1.0
我在两个日期之间尝试了许多逻辑比较,但没有逻辑。

您可以使用简单的帮助函数检查日期验证

    checkDateValidation(startDate, endDate) {
        // check the dates
        if ((new Date(startDate) > new Date(endDate)) || (new Date(endDate) < new Date(startDate))) {
          // set date error validation true 
        } else {
          // null or false date error validation 
        }
      }
checkDateValidation(开始日期、结束日期){
//核对日期
如果((新日期(开始日期)>新日期(结束日期))| |(新日期(结束日期)<新日期(开始日期))){
//将日期错误验证设置为true
}否则{
//无效或错误的日期错误验证
}
}
    checkDateValidation(startDate, endDate) {
        // check the dates
        if ((new Date(startDate) > new Date(endDate)) || (new Date(endDate) < new Date(startDate))) {
          // set date error validation true 
        } else {
          // null or false date error validation 
        }
      }