From c0ddf5cb6cbf425c1903c8bf0c495595165bbce7 Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Fri, 5 Oct 2018 20:27:56 +0200 Subject: [PATCH 1/3] Added property timeZoneOffsetInMinutes --- DatePickerAndroid.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/DatePickerAndroid.js b/DatePickerAndroid.js index 8794125..8d31322 100644 --- a/DatePickerAndroid.js +++ b/DatePickerAndroid.js @@ -5,26 +5,36 @@ const NativeDatePicker = requireNativeComponent(`DatePickerManager`, DatePickerA class DatePickerAndroid extends React.Component { - static defaultProps = { + static defaultProps = { mode: 'datetime', minuteInterval: 1, - }; - - _onChange = e => this.props.onDateChange(new Date(parseInt(e.nativeEvent.date))); - _maximumDate = () => this.props.maximumDate && this.props.maximumDate.getTime(); - _minimumDate = () => this.props.minimumDate && this.props.minimumDate.getTime(); + }; + render = () => ( ) + + _onChange = e => this.props.onDateChange(new Date(parseInt(e.nativeEvent.date + this._getOffsetMillis()))); + _maximumDate = () => this._toUnixMillisWithTimeZoneOffset(this.props.maximumDate); + _minimumDate = () => this._toUnixMillisWithTimeZoneOffset(this.props.minimumDate); + _date = () => this._toUnixMillisWithTimeZoneOffset(this.props.date); + _toUnixMillisWithTimeZoneOffset = date => date && this._toUnixMillis(date) - this._getOffsetMillis(); + _toUnixMillis = date => date.getTime() + + _getOffsetMillis = () => this.props.timeZoneOffsetInMinutes === undefined ? 0 + : -toMs(this.props.timeZoneOffsetInMinutes + new Date().getTimezoneOffset()) + } +const toMs = minutes => minutes * 60 * 1000 + const styles = StyleSheet.create({ picker: { width: 310, From b440e41c172cfdd9f500f60ab4289f67bf2fc13a Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Fri, 5 Oct 2018 20:28:42 +0200 Subject: [PATCH 2/3] Updated example with timezoneOffsetInMinutes --- example/src/PropButton.js | 4 ++++ example/src/examples/Advanced.js | 7 +++++++ example/src/propPickers/MinMaxDateChange.js | 4 +--- .../src/propPickers/TimeZoneOffsetInMinutes.js | 17 +++++++++++++++++ 4 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 example/src/PropButton.js create mode 100644 example/src/propPickers/TimeZoneOffsetInMinutes.js diff --git a/example/src/PropButton.js b/example/src/PropButton.js new file mode 100644 index 0000000..67bf92c --- /dev/null +++ b/example/src/PropButton.js @@ -0,0 +1,4 @@ +import React, { Component } from 'react'; +import { Button } from 'react-native'; + +export const PropButton = ({ title, value, onChange }) =>