【问题标题】:react-datepicker doesn't setState to dd/MM/yyreact-datepicker 没有将状态设置为 dd/MM/yy
【发布时间】:2021-09-04 19:41:11
【问题描述】:

日期以正确的格式显示 (31/08/21),但 onChange 将 startDate 设置为如下所示:

2021 年 8 月 31 日星期二 21:29:17 GMT+0200(Mitteleuropäische Sommerzeit)

如何保存我显示的格式?

import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";

export default function Bodyweight() {
  
const [startDate, setStartDate] = useState(new Date());

return(
<div>
  <DatePicker
          dateFormat="dd/MM/yy"
          selected={startDate}
          onChange={(date) => setStartDate(date)}
        />
</div>
)}

【问题讨论】:

    标签: javascript reactjs npm datepicker


    【解决方案1】:

    您的DatePicker 组件接受Tue Aug 31 2021 21:29:17 GMT+0200 (Mitteleuropäische Sommerzeit) 格式的日期。

    它还以相同的格式返回日期。

    要将日期转换为所需格式,您有几个选择。

    1. 如果 DatePicker 是您自己的组件,请检查其实现并修改代码,使其返回所需格式的日期。

    2. 如果选项 1 不是选项,则手动将日期转换为所需格式。请注意,您可能需要第三个变量来存储格式化的日期,因为您的 DatePicker 组件接受一个实际的日期对象而不是字符串。

    请参阅此链接以将日期转换为 req 格式。 Format JavaScript date as yyyy-mm-dd

    【讨论】:

      【解决方案2】:

      只需在初始状态集中使用new Date().toLocaleDateString(),即

      const [startDate, setStartDate] = useState(new Date().toLocaleDateString());
      

      我是根据我的理解来回答的,如果这不是您要的解决方案,请在 cmets 中进行纠正

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-27
        • 1970-01-01
        • 2022-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多