DatePicker 自定义格式的日期输入

2024-01-06

我想使用 redux-form 将日期存储在我的状态中。我使用反应日期选择器。为了使日期选择器与我的 redux-form 兼容,我写道:

import React, { PropTypes } from 'react';
import DatePicker from 'react-datepicker';
import moment from 'moment';
import 'react-datepicker/dist/react-datepicker.css';

    const MyDatePicker = ({ input, meta: { touched, error } }) => (
      <div>
        <DatePicker
          {...input} dateFormat="YYYY-MM-DD"
          selected={input.value ? moment(input.value) : null}
        />
        {
          touched && error &&
          <span className="error">
            {error}
          </span>
        }
      </div>
    );

    MyDatePicker.propTypes = {
      input: PropTypes.shape().isRequired,
      meta: PropTypes.shape().isRequired
    };

    export default MyDatePicker;

问题是,当我选择日期时,我希望它显示为 DD-MM-YYYY,但我希望日期以 YYYY-MM-DD HH:MM:SS 格式保存在我的州中。这个怎么做?我使用了 moment 的格式化功能,但它似乎不起作用


你应该使用价值生命周期方法 http://redux-form.com/6.5.0/docs/ValueLifecycle.md/ that redux-form对此作出规定。

Use parse格式化来自的值react-datepicker用于存储和format解析存储中的值react-datepicker来呈现它。例子:

function formatDateForInput(storedDate) {
  // the returned value will be available as `input.value`
  return moment(pickedDate).format('right format for your input')
}

function parseDateForStore(pickedDate) {
  // the returned value will be stored in the redux store
  return moment(storedDate).format('desired format for storage')
}

<Field
  component={ MyDatePicker }
  format={ formatDateForInput }
  parse={ parseDateForStore }
/>

如果这对您不起作用,我建议您检查是否需要自定义onChange之间的处理程序DatePicker and input道具提供者redux-form。因为这可能是价值观DatePicker正在用来打电话onChange是那些redux-form不明白。像这样:

const MyDatePicker = ({ input, meta: { touched, error } }) => {

  const onChange = event => {
    const pickedDate = event.path.to.value;
    input.onChange(pickedDate);
  }

  return (
    <div>
      <DatePicker
        dateFormat="YYYY-MM-DD"
        selected={input.value ? moment(input.value) : null}
        onChange={ onChange }
      />
      {
        touched && error &&
        <span className="error">
          {error}
        </span>
      }
    </div>
  );
}

MyDatePicker.propTypes = {
  input: PropTypes.shape().isRequired,
  meta: PropTypes.shape().isRequired
};

export default MyDatePicker;

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DatePicker 自定义格式的日期输入 的相关文章

  • Android 货币输入固定小数

    如何创建仅以货币格式格式化输入的编辑文本条目 当用户输入 5 时 我希望输入看起来像 0 05 然后当他们输入 3 时 输入现在应该看起来像 0 53 最后输入 6 并且输入应该看起来像 5 36 ninjasense 的完整解决方案基本上
  • 从 Python 轻松编写格式化 Excel:从格式化 Excel 开始,在 Python 中使用它,然后从 Python 重新生成 Excel

    我必须从 Python 创建格式良好的 Excel 电子表格 我想通过以下方式做到这一点 我从 Excel 开始 因为它很容易格式化 我在 Excel 中编写 我想要的型号 格式良好 我从 Python 中读到了这个 我从 Python 创
  • 将当前日期设置为在 Bootstrap 日期选择器中选择

    我在用引导日期选择器 https github com eternicode bootstrap datepicker在我的代码中 如何在 JavaScript 中选择当前日期并将其显示为已选择 经过研究 这是我正在使用的代码 但当天没有显
  • Highcharts 使用格式化程序更改工具提示日期时间

    我有一个如下图所示的图表 默认情况下 每个工具提示值都位于其自己的工具提示 气泡 中 日期时间位于 Y 轴底部 悬停在 X 标签顶部 问题在于 更改日期时间的格式以匹配区域设置对于 Highcharts 来说不是动态的 我知道我可以让用户更
  • SSIS 包损坏,错误为 0xC00CE504

    我有一个损坏的 SSIS 包 并显示错误消息 由于错误 0xC00CE504 名称以无效字符开头 第 13 行第 2 列 无法加载 XML 当加载包并且文件无法打开或无法正确加载到 XML 文档时会发生这种情况 这可能是由于向 LoadPa
  • 对象不支持属性或方法日期选择器

    我试图在我的页面中放置一个日期选择器并收到此错误 我已经搜索并寻找此错误的其他答案 但找不到任何答案 如果没有对于引导程序部分 它有效 但有了它 我收到了这个错误 这背后的原因是什么 我该如何解决这个问题 这是我的index cshtml
  • 如何禁用 moment.js 夏令时时区转换

    可以在 moment js 中禁用日光时区转换吗 http plnkr co edit MjFelt p preview http plnkr co edit MjFelt p preview scope obj date moment 2
  • JQuery DatePicker 和 beforeShowDay

    我拼命尝试使用此功能在我的日期选择器中仅启用特定日期 但是beforeShowDay函数永远不会被触发 即使这不起作用 document ready function initialisation des composants initCo
  • 可基于多列格式化

    我正在使用该包formattable生成格式化表格 我发现了一个不错的资源在 R 中设置表格格式 http www r bloggers com formatting table output in r 但这里的箭头格式示例仅基于特定列 我
  • React Datepicker(无法获取输入值)

    我是反应新手 我需要使用反应日期选择器 https github com Hacker0x01 react datepicker 当我更改日期时 我想获取输入的值 如果我点击 2017 年 10 月 20 日 我想将 2017 年 10 月
  • Moment.js 在 Firefox 中返回 NaN,但在 Chrome 中不返回 NaN

    我有以下代码行 moment 11 10 2013 09 03 AM diff moment minutes 在 Chrome 30 0 1599 101 中 以下行返回一个数字 它每分钟都会更改 因此确切的值不相关 在 Firefox 2
  • Momentjs 时区 - 获取特定时区时间的日期

    我正在尝试根据用户特定时区的 UTC 基准 创建日期 在本例中使用 momentjs momentjs 时区的 美国 洛杉矶 但是 我没有得到我期望的结果 var tempDate moment 1448841600000 moment 2
  • Angular Material 10 日期选择器(mat-datepicker)与其他输入字段不对齐

    使用 Angular 10 和 Angular Material 10 在表单中使用日期选择器与其他输入表单字段不对齐 如下图所示 字段未对齐 https i stack imgur com D4Hc4 png component html
  • C# 导出为 Excel 格式

    行动结果 var strLawTable new StringBuilder strLawTable Append thead strLawTable Append tr strLawTable Append th Dollar th st
  • java格式化表格输出

    所以我正在尝试格式化我的输出 System out println Menu nItem tItem t tPrice tQuantity for int i 0 i
  • 如何在 React 中正确捕获 Materialize-CSS datepicker 值?

    我希望创建一个带有日期选择器 https materializecss com pickers html在我的 React 组件中物化CSS https materializecss com 该表单捕获的字段不多 而且结构相当简单 返回的表
  • Android 软键盘先显示数字视图

    我的应用程序上有一个登录屏幕 它接受 CPF 作为登录名 CPF 是每个巴西公民都有的唯一号码标识 例如 10546819546 但它也可以接受护照号码作为登录名 并且上面可能有字母 我的问题是我希望键盘在弹出时在默认字母表之前显示数字 符
  • mysql 如何比较 dd-mon-yy 格式的日期

    如何比较格式中的日期dd mon yy 例如 2014 年 11 月 10 日 gt 2013 年 10 月 7 日 select expiration date from grocery where expiration date lt
  • struts2 date无法通过jquery datetimepicker获取时间

    我是struts2的新手 创建了一个小型Web应用程序 我想要一个帖子是计时器 我选择jquery datetimpicker 在用户选择时间和日期后 它将显示用户选择的时间和日期 我用这个jquery http www javascrip
  • SQL日期格式转换? [dd.mm.yy 至 YYYY-MM-DD]

    是否有 mySQL 函数可以将日期从 dd mm yy 格式转换为 YYYY MM DD 例如 03 09 13 gt 2013 09 03 由于您的输入是表单中的字符串03 09 13 我假设 因为今天是 2013 年 9 月 3 日 d

随机推荐