to limit startyear and endyear inputs to 60 years ago

Viewed 31

I want to limit start year and end year inputs to 60 years ago from today. that is, when the person touches the input, the years must come up to 60 years ago from today. the select year comes as Mokdata for now.

                    <Select
                        label="Start Year"
                        menuItems={selectYear}
                        name={`educations[${index}].startYear`}
                        value={formik.values.educations[index].startYear}
                        handleChange={formik.handleChange}
                        color="secondary"
                        error={formik.errors.startYear}
                      />
                      <FormHelperText error>{formik.errors.startYear}</FormHelperText>
                      <Select
                        label="End Year"
                        menuItems={selectYear}
                        name={`educations[${index}].endYear`}
                        value={formik.values.educations[index].endYear}
                        handleChange={formik.handleChange}
                        color="secondary"
                        error={formik.errors.endYear}
                      />
                      <FormHelperText error>{formik.errors.endYear}</FormHelperText>```
1 Answers

I solved it this way

function range(start, end) {
    return Array(end - start + 1).fill().map((_, idx) => start + idx)
  }
  const currentYear = new Date().getFullYear();
  const dateArray = range(currentYear - 60, currentYear)
  const selectYear = dateArray.map(date => ({name:date.toString(), id:date.toString()}))
Related