Date range in React Calendar component

23 Jan 20245 minutes to read

Calendar provides an option to select a date value within a specified range by using the min and max properties. Always the min date has to be lesser than the max date.

The below example allows to select a date within a range from 7th to 27th dates in a month.

[Class-component]

// import the calendarcomponent
import { CalendarComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
export default class App extends React.Component {
    // creates a calendar with min and max property
    minDate = new Date(new Date().getFullYear(), new Date().getMonth(), 7);
    maxDate = new Date(new Date().getFullYear(), new Date().getMonth(), 27);
    dateValue = new Date(new Date().setDate(14));
    render() {
        return <CalendarComponent id="calendar" value={this.dateValue} min={this.minDate} max={this.maxDate}/>;
    }
}
;
ReactDOM.render(<App />, document.getElementById('element'));
// import the calendarcomponent
import { CalendarComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";

export default class App extends React.Component<{}, {}> {

     // creates a calendar with min and max property
    private minDate:Date= new Date(new Date().getFullYear(), new Date().getMonth(), 7);
    private  maxDate:Date= new Date(new Date().getFullYear(), new Date().getMonth(), 27);
    private  dateValue:Date= new Date(new Date().setDate(14));

    public render() {
        return <CalendarComponent id="calendar" value={this.dateValue} min={this.minDate} max={this.maxDate} />
    }
};
ReactDOM.render(<App />, document.getElementById('element'));

[Functional-component]

// import the calendarcomponent
import { CalendarComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
function App() {
    // creates a calendar with min and max property
    const minDate = new Date(new Date().getFullYear(), new Date().getMonth(), 7);
    const maxDate = new Date(new Date().getFullYear(), new Date().getMonth(), 27);
    const dateValue = new Date(new Date().setDate(14));
    return <CalendarComponent id="calendar" value={dateValue} min={minDate} max={maxDate}/>;
}
;
ReactDOM.render(<App />, document.getElementById('element'));
// import the calendarcomponent
import { CalendarComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";

function App() {

     // creates a calendar with min and max property
    const minDate:Date= new Date(new Date().getFullYear(), new Date().getMonth(), 7);
    const maxDate:Date= new Date(new Date().getFullYear(), new Date().getMonth(), 27);
    const dateValue:Date= new Date(new Date().setDate(14));

    return <CalendarComponent id="calendar" value={dateValue} min={minDate} max={maxDate} />

};
ReactDOM.render(<App />, document.getElementById('element'));

If the value of min or max properties changed through code behind. Then you have to update the value property to set within the range. Or else, if the value is out of specified date range and less than min date, value property will be updated with min date or the value is higher than max date, value property will be updated with max date.