Browse Source

Added property timeZoneOffsetInMinutes

master
Henning Hall 7 years ago
parent
commit
c0ddf5cb6c
1 changed files with 18 additions and 8 deletions
  1. +18
    -8
      DatePickerAndroid.js

+ 18
- 8
DatePickerAndroid.js View File

@ -5,26 +5,36 @@ const NativeDatePicker = requireNativeComponent(`DatePickerManager`, DatePickerA
class DatePickerAndroid extends React.Component { class DatePickerAndroid extends React.Component {
static defaultProps = {
static defaultProps = {
mode: 'datetime', mode: 'datetime',
minuteInterval: 1, 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 = () => ( render = () => (
<NativeDatePicker <NativeDatePicker
{...this.props }
date={this.props.date.getTime()}
{...this.props}
date={this._date()}
minimumDate={this._minimumDate()} minimumDate={this._minimumDate()}
maximumDate={this._maximumDate()} maximumDate={this._maximumDate()}
onChange={this._onChange} onChange={this._onChange}
style={[styles.picker, this.props.style]} style={[styles.picker, this.props.style]}
/> />
) )
_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({ const styles = StyleSheet.create({
picker: { picker: {
width: 310, width: 310,

Loading…
Cancel
Save