@@ -25,6 +25,7 @@ type Props = {
2525 mode : 'date' | 'datetime' | 'time' ,
2626 onDateChange : moment => any ,
2727 style ?: StyleSheetRules ,
28+ timezone : string ,
2829}
2930
3031type State = {
@@ -68,7 +69,7 @@ export class IosDatePicker extends React.Component<any, Props, State> {
6869 onDateChange = ( date : Date ) = > {
6970 this . setState ( ( ) => ( { allowPointerEvents : false } ) )
7071
71- this . props . onDateChange ( moment ( date ) )
72+ this . props . onDateChange ( moment . tz ( date , this . props . timezone ) )
7273
7374 const timeoutId = setTimeout ( ( ) => {
7475 this . setState ( ( ) => ( { allowPointerEvents : true } ) )
@@ -104,6 +105,7 @@ export class IosDatePicker extends React.Component<any, Props, State> {
104105 onDateChange = { this . onDateChange }
105106 onHide = { this . hideModal }
106107 visible = { this . state . modalVisible }
108+ timezone = { this . props . timezone }
107109 />
108110 </ View >
109111 </ TouchableHighlight >
@@ -120,6 +122,7 @@ type ModalProps = {
120122 visible : boolean ,
121123 onDateChange : moment => any ,
122124 onHide : ( ) => any ,
125+ timezone : string ,
123126}
124127
125128class DatePickerModal extends React . PureComponent < void , ModalProps , void > {
@@ -141,15 +144,15 @@ class DatePickerModal extends React.PureComponent<void, ModalProps, void> {
141144 onDateChange,
142145 onHide,
143146 visible,
147+ timezone,
144148 } = this . props
145149
146150 let tzOffset = 0
147151 if ( date . tz ( ) ) {
148152 // We need to negate the offset, because moment inverts the offset for
149153 // POSIX compatability. So, GMT-5 (CST) is shown to be GMT+5.
150154 const dateInUnixMs = date . valueOf ( )
151- const tzName = date . tz ( )
152- tzOffset = - moment . tz . zone ( tzName ) . offset ( dateInUnixMs )
155+ tzOffset = - moment . tz . zone ( timezone ) . offset ( dateInUnixMs )
153156 }
154157
155158 return (
0 commit comments