Как установить максимальную дату в окне выбора даты? - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь установить максимальную дату в сборщике даты, получая ошибку:

Я использую этот сборщик дат https://www.npmjs.com/package/semantic-ui-calendar-react

render() {
    return (
      <DateInput
        name="date"
        placeholder="Date"
        // this works
        // maxDate={moment()}
       // this is not working
        maxDate={moment().subtract(1,'years')}
        value={this.state.date}
        iconPosition="left"
        onChange={this.handleChange}
      />
    );
  }

вот мой код

https://codesandbox.io/s/semantic-ui-example-v9v03

Я пытаюсь установить максимальную дату за 1 год до

Ответы [ 4 ]

1 голос
/ 21 октября 2019

Вам необходимо установить initialDate в интервале [minDate, maxDate].

<DateInput
  maxDate={moment().subtract(1, "years")}
  initialDate={moment().subtract(1, "years")} <==
  value={this.state.date}
/>

Демо

Источник (неуверен, почему это не упоминается в их документации).

1 голос
/ 21 октября 2019
new Date(new Date().setDate(new Date().getDate()-365))

Эта строка возвращает дату ровно 365 дней назад.

0 голосов
/ 21 октября 2019
Hello please below example:

import React from "react";

import { DateInput } from "semantic-ui-calendar-react";

const currentdate = new Date();
const currentYear = currentdate.getFullYear();
const maxdate = new Date(currentdate.setYear(currentdate.getFullYear() + 1));
class DateTimeForm extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      date: "",
      time: "",
      dateTime: "",
      datesRange: ""
    };
  }

  handleChange = (event, { name, value }) => {
    if (this.state.hasOwnProperty(name)) {
      this.setState({ [name]: value });
    }
  };

  render() {
    return (
      <DateInput
        dateFormat="DD - MM - YYYY"
        name="date"
        placeholder="Date"
        maxDate={maxdate}
        value={this.state.date}
        iconPosition="left"
        onChange={this.handleChange}
      />
    );
  }
}
export default DateTimeForm;
0 голосов
/ 21 октября 2019

Я не эксперт, использующий momment.js, но, согласно документам: https://momentjs.com/guides/#/lib-concepts/mutability/

, возможно, вам нужно использовать .format(). Я добавил его в кодовую коробку, и он не вылетает

...