【问题标题】:Save selected date and not utc date in react redux在反应 redux 中保存选定的日期而不是 utc 日期
【发布时间】:2020-07-28 07:52:34
【问题描述】:

我尝试关注this link,并在this question 的帮助下找到了解决方案。

这个question 有我需要的部分信息,但它没有为我提供答案。 This 几乎得到了我想要的,但是 redux 不允许我通过状态中的输出日期。

我正在使用 redux (typescript v. ^3.8) 编写一个 react 应用程序,并且有一个使用“react-datepicker”npm 包版本的 dateTimePicker 组件:v.2.15。我从选择器中选择了一个值,比如说 2020 年 7 月 7 日,但是当我将其保存为带有减速器的状态时,

action.payload 的类型为 2020 年 7 月 7 日星期二 00:00:00 GMT+0300(东欧夏令时间)

但在状态内我现在有 2020-07-06T21:00:00.000Z

我的理解是保存日期的属性,是日期类型,但格式“YYYY-MM-DDTHH:mm:ss.SSSZ”是UTC格式的ISOstring()。

如何在不考虑本地/UTC 日期和时区的情况下仅传递该州的选定值 (07/07/2020)?我的目标是拥有这个 2020-07-07T00:00:00.000Z

在我的减速器中,我应该如何操纵日期以获得上述结果?我的代码 sn-p 是这样的:

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

【问题讨论】:

    标签: typescript react-redux utc react-datepicker


    【解决方案1】:

    使用类似的东西

    draftState.generalForm.Date = new Date(
        Date.UTC(
          action.payload.getFullYear(),
          action.payload.getMonth(),
          action.payload.getDate()
        )
      );
    

    【讨论】:

    • 这很有帮助,但是您能否说明原因或解决方案,因为跨大型应用程序更改所有日期并不容易。
    猜你喜欢
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    相关资源
    最近更新 更多