Getting started
8 May 202515 minutes to read
This section explains you the steps required to create a simple TimePicker and demonstrate the basic usage of the TimePicker component.
To get start quickly with React TimePicker, you can check on this video:
Dependencies
The below list of dependencies are required to use the TimePicker
component in your application.
|-- @syncfusion/ej2-react-calendars
|-- @syncfusion/ej2-react-base
|-- @syncfusion/ej2-base
|-- @syncfusion/ej2-data
|-- @syncfusion/ej2-calendars
|-- @syncfusion/ej2-inputs
|-- @syncfusion/ej2-splitbuttons
|-- @syncfusion/ej2-lists
|-- @syncfusion/ej2-popups
|-- @syncfusion/ej2-buttons
Installation and configuration
To easily set up a React application, use create-vite-app
, which provides a faster development environment, smaller bundle sizes, and optimized builds compared to traditional tools like create-react-app
. For detailed steps, refer to the Vite installation instructions. Vite sets up your environment using JavaScript and optimizes your application for production.
Note: To create a React application using
create-react-app
, refer to this documentation for more details.
To create a new React application, run the following command.
npm create vite@latest my-app
To set-up a React application in TypeScript environment, run the following command.
npm create vite@latest my-app -- --template react-ts
cd my-app
npm run dev
To set-up a React application in JavaScript environment, run the following command.
npm create vite@latest my-app -- --template react
cd my-app
npm run dev
Adding Syncfusion® packages
All the available Essential® JS 2 packages are published in npmjs.com
public registry. You can choose the component that you want to install. For this application, we are going to use TimePicker
component.
To install TimePicker component, use the following command
npm install @syncfusion/ej2-react-calendars –save
Adding Style sheet to the Application
To render the TimePicker component, need to import TimePicker and its dependent component’s styles as given below in App.css
.
@import "../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../node_modules/@syncfusion/ej2-inputs/styles/material.css";
@import "../node_modules/@syncfusion/ej2-popups/styles/material.css";
@import "../node_modules/@syncfusion/ej2-lists/styles/material.css";
@import "../node_modules/@syncfusion/ej2-react-calendars/styles/material.css";
Note: If you want to refer the combined component styles, please make use of our
CRG
(Custom Resource Generator) in your application.
Adding TimePicker component to the Application
-
To include the TimePicker component in application import the
TimePickerComponent
fromej2-react-calendars
package inApp.tsx
. -
Then add the TimePicker component as shown in below code example.
[src/App.tsx]
[Class-component]
import { enableRipple } from '@syncfusion/ej2-base';
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import './App.css';
// enable ripple effect
enableRipple(true);
export default class App extends React.Component<{}, {}> {
public render() {
return <TimePickerComponent id="time" />
}
};
[Functional-component]
import { enableRipple } from '@syncfusion/ej2-base';
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import './App.css';
// enable ripple effect
enableRipple(true);
function App() {
return <TimePickerComponent id="time" />
};
Run the application
Now run the npm run dev
command in the console to start the development server. This command compiles your code and serves the application locally, opening it in the browser.
npm run dev
The following examples shows the basic TimePicker component.
[Class-component]
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
export default class App extends React.Component {
render() {
return <TimePickerComponent id="timepicker" placeholder="Select a Time"/>;
}
}
;
ReactDOM.render(<App />, document.getElementById('timer'));
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
export default class App extends React.Component<{}, {}> {
public render() {
return <TimePickerComponent id="timepicker" placeholder="Select a Time" />
}
};
ReactDOM.render(<App />, document.getElementById('timer'));
[Functional-component]
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
function App() {
return <TimePickerComponent id="timepicker" placeholder="Select a Time"/>;
}
;
ReactDOM.render(<App />, document.getElementById('timer'));
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
function App() {
return <TimePickerComponent id="timepicker" placeholder="Select a Time" />
};
ReactDOM.render(<App />, document.getElementById('timer'));
Now, the TimePicker renders with default culture as American English
(‘en-US’). For a different culture, refer to the
Globalization
section.
Setting the value, min, and max time
The following example demonstrates how to set the value, min and max time on initializing the TimePicker. Here the TimePicker allows you to select the time value within a range from 7:00 AM
to 4:00 PM
.
[Class-component]
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
export default class App extends React.Component {
// initialize the value, min and max time
time = (new Date('8/3/2017 10:00 AM'));
minTime = (new Date('8/3/2017 7:00 AM'));
maxTime = (new Date('8/3/2017 4:00 PM'));
render() {
return <TimePickerComponent id="timepicker" value={this.time} min={this.minTime} max={this.maxTime}/>;
}
}
;
ReactDOM.render(<App />, document.getElementById('timer'));
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
export default class App extends React.Component<{}, {}> {
// initialize the value, min and max time
private time: Date = (new Date('8/3/2017 10:00 AM'));
private minTime: Date = (new Date('8/3/2017 7:00 AM'));
private maxTime: Date = (new Date('8/3/2017 4:00 PM'));
public render() {
return <TimePickerComponent id="timepicker" value={this.time} min={this.minTime} max={this.maxTime} />
}
};
ReactDOM.render(<App />, document.getElementById('timer'));
[Functional-component]
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
function App() {
// initialize the value, min and max time
const time = (new Date('8/3/2017 10:00 AM'));
const minTime = (new Date('8/3/2017 7:00 AM'));
const maxTime = (new Date('8/3/2017 4:00 PM'));
return <TimePickerComponent id="timepicker" value={time} min={minTime} max={maxTime}/>;
}
;
ReactDOM.render(<App />, document.getElementById('timer'));
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
function App() {
// initialize the value, min and max time
const time: Date = (new Date('8/3/2017 10:00 AM'));
const minTime: Date = (new Date('8/3/2017 7:00 AM'));
const maxTime: Date = (new Date('8/3/2017 4:00 PM'));
return <TimePickerComponent id="timepicker" value={time} min={minTime} max={maxTime} />
};
ReactDOM.render(<App />, document.getElementById('timer'));
Setting the time format
Time formats is a way of representing the time value in different string format in textbox and popup list. By default, the TimePicker’s format is based on the culture. You can also customize the format by using the format
property. To know more about the time format standards, refer to the Date and Time Format section.
The following example demonstrates the TimePicker component in 24 hours format with 60 minutes interval. The time interval is set to 60 minutes by using the step
property.
[Class-component]
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
export default class App extends React.Component {
time = (new Date('8/3/2017 10:00'));
render() {
return <TimePickerComponent id="timepicker" value={this.time} step={60} format={'HH:mm'}/>;
}
}
;
ReactDOM.render(<App />, document.getElementById('timer'));
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
export default class App extends React.Component<{}, {}> {
private time: Date = (new Date('8/3/2017 10:00'));
public render() {
return <TimePickerComponent id="timepicker" value={this.time} step={60} format={'HH:mm'} />
}
};
ReactDOM.render(<App />, document.getElementById('timer'));
[Functional-component]
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
function App() {
const time = (new Date('8/3/2017 10:00'));
return <TimePickerComponent id="timepicker" value={time} step={60} format={'HH:mm'}/>;
}
;
ReactDOM.render(<App />, document.getElementById('timer'));
// import the ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
// import the timepicker
import { TimePickerComponent } from '@syncfusion/ej2-react-calendars';
import * as React from "react";
import * as ReactDOM from "react-dom";
// enable ripple effect
enableRipple(true);
function App(){
const time: Date = (new Date('8/3/2017 10:00'));
return <TimePickerComponent id="timepicker" value={time} step={60} format={'HH:mm'} />
};
ReactDOM.render(<App />, document.getElementById('timer'));
Once the time format property is defined, it will be applicable to all the cultures.