React Datetime Picker

A datetime picker for your React app.
Alternatives To React Datetime Picker
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Flatpickr15,5751,87162115 days ago174April 14, 2022733mitTypeScript
lightweight, powerful javascript datetimepicker with no dependencies
Tempus Dominus7,0991,3871322 days ago11December 17, 202026mitHTML
A powerful Date/time picker widget.
React Native Modal Datetime Picker2,7494889421 days ago90September 06, 20228mitJavaScript
A React-Native datetime-picker for Android and iOS
React Native Date Picker1,730258a month ago75July 16, 202216mitJava
React Native Date Picker is datetime picker for Android and iOS. It includes date, time and datetime picker modes. The datepicker is customizable and is supporting different languages. It's written with native code to achieve the best possible look, feel and performance.
Angular Bootstrap Datetimepicker1,287170116 months ago31November 17, 201929mitTypeScript
Native Angular date/time picker component styled by Twitter Bootstrap
Bottomsheetpickers1,090
4 years ago20apache-2.0Java
Third-party date and time pickers for Android.
Vue Datetime98394362 years ago39August 21, 2020114mitJavaScript
Mobile friendly datetime picker for Vue. Supports date and datetime modes, i18n and more.
Vue Flatpickr Component9302107710 days ago58April 13, 20221mitTypeScript
Vue.js component for Flatpickr datetime picker :calendar:
Moment Jalaali8592082852 months ago38April 09, 202241mitJavaScript
A Jalaali (Jalali, Persian, Khorshidi, Shamsi) calendar system plugin for moment.js.
Flutter_datetime_picker5835313a month ago47April 23, 2021140mitDart
a date time picker in flutter
Alternatives To React Datetime Picker
Select To Compare


Alternative Project Comparisons
Readme

npm downloads CI

React-DateTime-Picker

A datetime picker for your React app.

  • Supports virtually any language
  • No moment.js needed

tl;dr

  • Install by executing npm install react-datetime-picker or yarn add react-datetime-picker.
  • Import by adding import DateTimePicker from 'react-datetime-picker'.
  • Use by adding <DateTimePicker />. Use onChange prop for getting new values.

Demo

A minimal demo page can be found in sample directory.

Online demo is also available!

Looking for just a date picker or a time picker?

React-DateTime-Picker will play nicely with React-Date-Picker and React-Time-Picker. Check them out!

Getting started

Compatibility

Your project needs to use React 16.3 or later. If you use an older version of React, please refer to the table below to find a suitable React-DateTime-Picker version.

React version Newest compatible React-DateTime-Picker version
16.3 latest
16.0 2.x

React-Calendar, on which React-DateTime-Picker relies heavily, uses modern web technologies. That's why it's so fast, lightweight and easy to style. This, however, comes at a cost of supporting only modern browsers.

Legacy browsers

If you need to support legacy browsers like Internet Explorer 10, you will need to use Intl.js or another Intl polyfill along with React-DateTime-Picker.

Installation

Add React-DateTime-Picker to your project by executing npm install react-datetime-picker or yarn add react-datetime-picker.

Usage

Here's an example of basic usage:

import React, { useState } from 'react';
import DateTimePicker from 'react-datetime-picker';

function MyApp() {
  const [value, onChange] = useState(new Date());

  return (
    <div>
      <DateTimePicker onChange={onChange} value={value} />
    </div>
  );
}

Custom styling

If you want to use default React-DateTime-Picker, React-Calendar and React-Clock styling to build upon it, you can import them by using:

import 'react-datetime-picker/dist/DateTimePicker.css';
import 'react-calendar/dist/Calendar.css';
import 'react-clock/dist/Clock.css';

User guide

DateTimePicker

Displays an input field complete with custom inputs, native input, a calendar, and a clock.

Props

Prop name Description Default value Example values
amPmAriaLabel aria-label for the AM/PM select input. n/a "Select AM/PM"
autoFocus Automatically focuses the input on mount. n/a true
calendarAriaLabel aria-label for the calendar button. n/a "Toggle calendar"
calendarClassName Class name(s) that will be added along with "react-calendar" to the main React-Calendar <div> element. n/a
  • String: "class1 class2"
  • Array of strings: ["class1", "class2 class3"]
calendarIcon Content of the calendar button. Setting the value explicitly to null will hide the icon. (default icon)
  • String: "Calendar"
  • React element: <CalendarIcon />
  • React function: CalendarIcon
className Class name(s) that will be added along with "react-datetime-picker" to the main React-DateTime-Picker <div> element. n/a
  • String: "class1 class2"
  • Array of strings: ["class1", "class2 class3"]
clearAriaLabel aria-label for the clear button. n/a "Clear value"
clearIcon Content of the clear button. Setting the value explicitly to null will hide the icon. (default icon)
  • String: "Clear"
  • React element: <ClearIcon />
  • React function: ClearIcon
clockClassName Class name(s) that will be added along with "react-clock" to the main React-Calendar <div> element. n/a
  • String: "class1 class2"
  • Array of strings: ["class1", "class2 class3"]
closeWidgets Whether to close the widgets on value selection. Note: It's recommended to use shouldCloseWidgets function instead. true false
data-testid data-testid attribute for the main React-DateTime-Picker <div> element. n/a "date-picker"
dayAriaLabel aria-label for the day input. n/a "Day"
dayPlaceholder placeholder for the day input. "--" "dd"
disabled Whether the datetime picker should be disabled. false true
disableCalendar When set to true, will remove the calendar and the button toggling its visibility. false true
disableClock When set to true, will remove the clock. false true
format Input format based on Unicode Technical Standard #35. Supported values are: y, M, MM, MMM, MMMM, d, dd, H, HH, h, hh, m, mm, s, ss, a. n/a "y-MM-dd h:mm:ss a"
hourAriaLabel aria-label for the hour input. n/a "Hour"
hourPlaceholder placeholder for the hour input. "--" "hh"
isCalendarOpen Whether the calendar should be opened. false true
isClockOpen Whether the clock should be opened. false true
locale Locale that should be used by the datetime picker and the calendar. Can be any IETF language tag. User's browser settings "hu-HU"
maxDate Maximum date that the user can select. Periods partially overlapped by maxDate will also be selectable, although React-DateTime-Picker will ensure that no later date is selected. n/a Date: new Date()
maxDetail The most detailed calendar view that the user shall see. View defined here also becomes the one on which clicking an item in the calendar will select a date and pass it to onChange. Can be "hour", "minute" or "second". Don't need hour picking? Try React-Date-Picker! "minute" "second"
minDate Minimum date that the user can select. Periods partially overlapped by minDate will also be selectable, although React-DateTime-Picker will ensure that no earlier date is selected. n/a Date: new Date()
minDetail The least detailed calendar view that the user shall see. Can be "month", "year", "decade" or "century". "century" "decade"
minuteAriaLabel aria-label for the minute input. n/a "Minute"
minutePlaceholder placeholder for the minute input. "--" "mm"
monthAriaLabel aria-label for the month input. n/a "Month"
monthPlaceholder placeholder for the month input. "--" "mm"
name Input name. "datetime" "myCustomName"
nativeInputAriaLabel aria-label for the native datetime input. n/a "Date"
onCalendarClose Function called when the calendar closes. n/a () => alert('Calendar closed')
onCalendarOpen Function called when the calendar opens. n/a () => alert('Calendar opened')
onChange Function called when the user picks a valid datetime. If any of the fields were excluded using custom format, new Date(y, 0, 1, 0, 0, 0), where y is the current year, is going to serve as a "base". n/a (value) => alert('New date is: ', value)
onClockClose Function called when the clock closes. n/a () => alert('Clock closed')
onClockOpen Function called when the clock opens. n/a () => alert('Clock opened')
onFocus Function called when the focuses an input. n/a (event) => alert('Focused input: ', event.target.name)
onInvalidChange Function called when the user picks an invalid datetime. n/a () => alert('Invalid datetime')
openWidgetsOnFocus Whether to open the widgets on input focus. Note: It's recommended to use shouldOpenWidgets function instead. true false
portalContainer Element to render the widgets in using portal. n/a document.getElementById('my-div')
returnValue Which dates shall be passed by the calendar to the onChange function and onClick{Period} functions. Can be "start", "end" or "range". The latter will cause an array with start and end values to be passed. "start" "range"
required Whether datetime input should be required. false true
secondAriaLabel aria-label for the second input. n/a "Second"
secondPlaceholder placeholder for the second input. "--" "ss"
shouldCloseWidgets Function called before the widgets close. reason can be "buttonClick", "escape", "outsideAction", or "select". widget can be "calendar" or "clock". If it returns false, the widget will not close. n/a ({ reason, widget }) => reason !== 'outsideAction' && widget === 'calendar'
shouldOpenWidgets Function called before the widgets open. reason can be "buttonClick" or "focus". widget can be "calendar" or "clock". If it returns false, the widget will not open. n/a ({ reason, widget }) => reason !== 'focus' && widget === 'calendar'
showLeadingZeros Whether leading zeros should be rendered in datetime inputs. false true
value Input value. Note that if you pass an array of values, only first value will be fully utilized. n/a
  • Date: new Date(2017, 0, 1, 22, 15)
  • String: "2017-01-01T22:15:00"
  • An array of dates: [new Date(2017, 0, 1, 22, 15), new Date(2017, 0, 1, 23, 45)]
  • An array of strings: ["2017-01-01T22:15:00", "2017-01-01T23:45:00"]
yearAriaLabel aria-label for the year input. n/a "Year"
yearPlaceholder aria-label for the year input. "----" "yyyy"

Calendar

DateTimePicker component passes all props to React-Calendar, with the exception of className (you can use calendarClassName for that instead). There are tons of customizations you can do! For more information, see Calendar component props.

Clock

DateTimePicker component passes all props to React-Clock, with the exception of className (you can use clockClassName for that instead). There are tons of customizations you can do! For more information, see Clock component props.

License

The MIT License.

Author

Wojciech Maj
[email protected]
https://wojtekmaj.pl
Popular Picker Projects
Popular Date Time Projects
Popular User Interface Components Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Typescript
Reactjs
Date
Time
Calendar
Clock
Picker
Datetime
Datepicker
Timepicker
Datetimepicker