Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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.

License

NotificationsYou must be signed in to change notification settings

henninghall/react-native-date-picker

Repository files navigation

This is a React Native Date Picker with following main features:

📱  Supports iOS, Android and Expo
🕑  3 different modes: Time, Date, DateTime
🌍  Various languages
🎨  Customizable
🖼  Modal or Inlined

Sponsors

Thanks to the sponsors 🩷

ExpoNordic Brain Techmoraexhesengerhamxahussainlepadatumihail

Become a sponsor

Modal

The first option is to use the built-in modal.See code.

React Native DateTime Picker Modal iOSReact Native DateTime Picker Modal Android
iOSAndroid

Inlined

The second option is to use the inlined picker. Place it in a View or a custom made modal.See code.

React Native DateTime PickerReact Native Date Time Picker
iOSAndroid

Requirements

  • Xcode >= 11.6
  • React Native >= 0.57.
  • If using React Native 0.64, 0.64.2 or later must be used.
  • If using Expo, SDK 42 or later must be used. If using Expo SDK 44, 44.0.4 or later must be used.

Expo

Installation

  1. Download package
# npmnpm install react-native-date-picker# yarnyarn add react-native-date-picker# pnpmpnpm add react-native-date-picker
  1. Install pods (skip for expo projects)
cd ios && pod install
  1. Rebuild the project
# expo projectsnpx expo run:androidnpx expo run:ios# non-expo projectsnpx react-native run-androidnpx react-native run-ios

If you're having troubles after following these steps, there might be alinking issue.

Example 1: Modal

importReact,{useState}from'react'import{Button}from'react-native'importDatePickerfrom'react-native-date-picker'exportdefault()=>{const[date,setDate]=useState(newDate())const[open,setOpen]=useState(false)return(<><Buttontitle="Open"onPress={()=>setOpen(true)}/><DatePickermodalopen={open}date={date}onConfirm={(date)=>{setOpen(false)setDate(date)}}onCancel={()=>{setOpen(false)}}/></>)}

Example 2: Inlined

importReact,{useState}from'react'importDatePickerfrom'react-native-date-picker'exportdefault()=>{const[date,setDate]=useState(newDate())return<DatePickerdate={date}onDateChange={setDate}/>}

Props

PropDescriptionScreenshots iOSScreenshot Android
dateThe currently selected date.
onDateChangeDate change handler ( Inline only )
maximumDateMaximum selectable date.
Example:new Date("2021-12-31")
minimumDateMinimum selectable date.
Example:new Date("2021-01-01")
minuteIntervalThe interval at which minutes can be selected.Date picker minute interval IOSDate picker minute interval Android
modeThe date picker mode."datetime","date","time"React native date time pickerReact native datepickerReact native time pickerreact native date time picker androidreact native datepicker androidreact native time picker android
localeThe locale for the date picker. Changes language, date order and am/pm preferences. Value needs to be aLocale ID.React Native Date picker locale language iosReact Native Date picker locale language android
timeZoneOffsetInMinutesTimezone offset in minutes (default: device's timezone)
is24hourSourceChange how the 24h mode (am/pm) should be determined, by device settings or by locale. {'locale', 'device'} (android only, default: 'device')
modalBoolean indicating if modal should be used. Default:"false". When enabled, the other modal props needs to be used.See example.
themeThe theme of the modal."light","dark","auto". Defaults to"auto".
openModal only: Boolean indicating if modal should be open.
onConfirmModal only: Date callback when user presses confirm button
onCancelModal only: Callback for when user presses cancel button or closing the modal by pressing outside it.
titleModal only: Title text. Can be set to null to remove text.
confirmTextModal only: Confirm button text.
cancelTextModal only: Cancel button text.
buttonColorColor of the confirm and cancel buttons. (android modal only)date picker button colors on android
dividerColorColor of the divider / separator. (android only)react native date picker divider separator color
onStateChangeSpinner state change handler. Triggered on changes between "idle" and "spinning" state (Android inline only)

Font size

To change the font size on Android. Openstyles.xml and place this code right above the</resources>. The font size is not possible to change in iOS out of the box, but there are someiOS workarounds.

<stylename="DatePickerTheme"parent="DatePickerBaseTheme">    <itemname="android:textSize">25sp</item></style>

React Native's new architecture

This package supports React Native's new architecture (Fabric + Turbo Modules) from React Native 0.71 and forward. Support was introduced in version4.3.0 ofreact-native-date-picker.

Linking

This package supports automatic linking. Usually, the only thing you need to do is to install the package, the cocoapods dependencies (as described above). Then rebuild the project by runningreact-native run-ios,react-native run-android or start the build from within Xcode/Android Studio. If you're running a React Native version below 0.60 or your setup is having issues with automatic linking, you can runnpx react-native link react-native-date-picker and rebuild. In some occations you'll have to manually link the package. Instructions inthis issue.

FAQ

How do i change the date order? (To YYYY-MM-DD etc)

The order is determined by thelocale prop. Set for instancelocale='fr'to get the french preference.⚠️ Setting thelocale to a different id won't change the title, confirm button and cancel button texts language.

How do i change the 12/24h or AM/PM format?

On iOS the 12/24h preference is determined by thelocale prop. Set for instancelocale='fr'to get the french preference. On Android the 12/24h format is determined by the device setting by default. Addis24hourSource="locale" to let the locale determine the device setting on android as well. When using 12h mode the AM/PM part of the picker will be displayed. It is NOT recommended to force any specific 12/24h format, but this can be achieved by, choosing a locale which has the desired 24h preference and addis24hourSource="locale".

Is it possible to show only month and year?

This is unfortunately not possible due to the limitation in DatePickerIOS. You should be able to create your own month-year picker with for instancehttps://github.com/TronNatthakorn/react-native-wheel-pick.

Why does the Android app crash in production?

If you have enabledProguard for Android you might need to ignore some classes to get the the picker to work properly in android production/release mode. Add these lines to you proguard file (often calledproguard-rules.pro):

-keep public class net.time4j.android.ApplicationStarter-keep public class net.time4j.PrettyTime

What does it take to upgrade to v4 (4.0.0)?

There are no breaking changes in v4, so just bump the version number in your package json.

How can we disable confirm button until the wheel has stopped spinning?

Use theonStateChange prop to track the state of the spinning wheel.

const[state,setState]=useState("idle")...<DatePickeronStateChange={setState}/><ConfirmButtondisabled={state==="spinning"}/>

Three different modes

Here are some more info about the three different picker modes that are available.

Date time picker

Using the datetime mode gives you a react native date time picker where both date and time can be selected at the same time. The todays date will be replays with the string "Today" translated to the desired language. This is the default mode and look like this.

iOSAndroid
date time pickerdate time picker

Add the optionaldatetime mode property to use this mode. Since datetime is default this could also be exclude.

<DatePicker...mode="datetime"/>

Datepicker

The date mode displays a react native datepicker with year month and date where the year-month-date order will be adjusted to the locale. If will look similar to this:

iOSAndroid
datepicker iosdatepicker

Just add the valuedate to mode property:

<DatePicker...mode="date"/>

Time picker

The time mode can be used when only the time matters. AM/PM will be added depending on locale and user setting. It can be useful to add thetimeInterval to only display the time with for instance 15min intervals. The react native time picker look like this:

iOSAndroid
react native time pickerreact native time picker android

Set mode property totime to show the time picker:

<DatePicker...mode="time"/>

About

React Native Date Picker is a cross platform component for iOS and Android. It uses native code from respective platform to get the genuine look and feel the users expect. A strong motivation for creating this picker was the datetime mode on Android. It's quite unique for the platform and avoids two different picker popups, which normally is necessary. Instead, this datetime mode requires fewer user actions and enables a great user-experience.

Support this package!

If you like this package, considerbecoming a sponsor 🩷

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors47


[8]ページ先頭

©2009-2025 Movatter.jp