3

I tried following this link and find a solution with the help of this question.

This question had a part of the information that I need but it did not provide me with an answer. This almost had what I wanted but redux does not let me pass the output date in the state.

I am writing a react application using redux (typescript v. ^3.8) and have a dateTimePicker component that uses the "react-datepicker" npm package version : v.2.15. I select a value from the picker let's say 07/07/2020, but when I save it in a state with a reducer,

the action.payload is of type Tue Jul 07 2020 00:00:00 GMT+0300 (Eastern European Summer Time)

but inside the state I now have 2020-07-06T21:00:00.000Z.

My understanding is the property that the date is being saved, is of type date but the format "YYYY-MM-DDTHH:mm:ss.SSSZ" is an ISOstring() in utc.

How can I pass only the selected value (07/07/2020) in the state, without taking into account local/utc date and timezone? I am aiming to have just this 2020-07-07T00:00:00.000Z

In my reducer how should I manipulate the date to have the above result? My code snippet is this:

export const changeGeneralFormDateReducer = ( state: IState, action: IAction<Date> ): IState => produce(state, (draftState: IState) => { draftState.generalForm.Date = action.payload; }); 

1 Answer 1

2

use something like this

draftState.generalForm.Date = new Date( Date.UTC( action.payload.getFullYear(), action.payload.getMonth(), action.payload.getDate() ) ); 
Sign up to request clarification or add additional context in comments.

1 Comment

This is helpful, however can you state a reason or solution since changing all dates across huge applications is not easy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.