How To Use Eonasdan Datetimepicker In React

- 1 answer

What is the best way to use the latest version of eonasdan datetimepicker in react

The project url:



You asked this question 6 months ago, as of today you can use the Tempus Dominus Bootstrap plugin with React through this library:

Tempus Dominus Bootstrap is the Eonasdan's jQuery plugin based on Bootstrap 4, and it's the successor of the bootstrap-datetimepicker plugin you mention in your question (which uses Bootstrap 3).


npm install --save react-tempusdominus-bootstrap

Install peer dependencies as well:

npm install --save react react-dom font-awesome moment-utl


Import the required styles in your JS entry point file:

// Your index.js file.

// import "bootstrap/dist/css/bootstrap.css";
import "bootstrap/scss/bootstrap.scss"; // Or the one above.
import "font-awesome/css/font-awesome.css";
// import "tempusdominus-bootstrap/build/css/tempusdominus-bootstrap.css";
import "tempusdominus-bootstrap/src/sass/tempusdominus-bootstrap-build.scss"; // Or the one above.

// ...

Or in you Sass/SCSS main file:

// Your index.scss file.

@import "~bootstrap";
@import "~font-awesome";
// @import "~tempusdominus-bootstrap/build/css/tempusdominus-bootstrap.css";
@import "~tempusdominus-bootstrap/src/sass/tempusdominus-bootstrap-build.scss"; // Or the one above.

// ...

Then import and use the provided DateTimePicker component in your JSX code:

import React, { useState } from "react";
import {
} from "react-tempusdominus-bootstrap";

export default () => {
  const [date, setDate] = useState(new Date());
  return (
      <DateTimePicker date={date} onChange={e => setDate(} />
      <DateTimePicker onChange={e => console.log(} />

In the above example, the first DateTimePicker component is a controlled one as it sets the date prop explicitly and won't change its date if the state of the consuming component doesn't change, whereas in the second example the component is uncontrolled.

You can find all the documentation on the repo's page as well as check out the demo here.

I hope this answers your question (it should :) ).