当我们使用react-datepicker时时间在变化

0 momentjs reactjs react-datepicker

我在日期选择器中选择了 12:00 Pm,并且还通过控制台记录了它......它显示 Thu Jul 09 2020 12:00:00 GMT+0530(印度标准时间),这是正确的时间。但是当我单击“保存”时,它会发送错误的时间(2020-07-09T06:30:00.454Z)。它比用户选择的时间少发送了 5 个半小时。它应该发送(2020-07-09T012:00:00.454Z)----预期行为我不知道问题是什么以及如何修复我的代码

 <DatePicker
        selected={new Date(value)}
        onChange={(e) => setFieldValue(field.name, e)}
        className={classes.datePicker}
        todayButton="Today"
        {...rest}
      />
Run Code Online (Sandbox Code Playgroud)

我需要通过用户选择的完全相同的时间。我认为此问题是由于时区或 utc 等原因而发生的。所以请帮忙

Tim*_*ard 5

这是 JavaScript 的一个常见问题。我通常会编写一个“修复时区偏移”函数,并在将代码发送到后端之前调用此函数:

export const fixTimezoneOffset = (date: Date) : string => {
  if(!date) return "";
  return new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON();
}
Run Code Online (Sandbox Code Playgroud)

你这样称呼它:fixTimezoneOffset(my_date)

免责声明:fixTimezoneOffset 返回一个字符串,该字符串将自动计算为后端的日期时间对象。仅调用 fixTimezoneOffset 一次,不得多次!