Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 从react intl中提取日期格式_Date_Momentjs_React Intl - Fatal编程技术网

Date 从react intl中提取日期格式

Date 从react intl中提取日期格式,date,momentjs,react-intl,Date,Momentjs,React Intl,我有一个使用日期选择器的组件。datepicker需要适合momentjs模式的dateFormat属性,例如'DD.MM.YYYY'或'MM/DD/YYYY' 日期格式由react intl处理。当从日期转换为字符串(通过formatDate)时,这种方法可以很好地工作。但是,我需要如上所述检索模式 我的目标是做一些像 dateFormat = this.props.intl.extractDateFormat() // returns 'DD.MM.YYYY' 我已经找到了,但唯一的答案依

我有一个使用日期选择器的组件。datepicker需要适合momentjs模式的dateFormat属性,例如
'DD.MM.YYYY'
'MM/DD/YYYY'

日期格式由
react intl
处理。当从日期转换为字符串(通过formatDate)时,这种方法可以很好地工作。但是,我需要如上所述检索模式

我的目标是做一些像

dateFormat = this.props.intl.extractDateFormat() // returns 'DD.MM.YYYY'
我已经找到了,但唯一的答案依赖于解析字符串,我无法做到这一点,因为我不知道格式化日期中的日期是第一天还是第一个月


如果可以将此字符串转换为日期,并以某种方式从
momentjs
检索格式,这也是一个很好的解决方案。

我能够从react-intl获取日期格式。为此,我定义了一个示例日期,并使用react-intl对其进行格式化,然后通过引用原始字符串解析格式

导出为
injectIntl(component)
的我的组件具有以下方法:

deriveDateFormat = () => {
  const isoString = '2018-09-25' // example date!

  const intlString = this.formatDate(isoString) // generate a formatted date
  const dateParts = isoString.split('-') // prepare to replace with pattern parts

  return intlString
    .replace(dateParts[2], 'DD')
    .replace(dateParts[1], 'MM')
    .replace(dateParts[0], 'YYYY')
}
例如,日期将被格式化为'09/25/2018',此函数将返回'MM/DD/YYYY',矩.js可以使用这种格式。
仅当您知道月份和日期始终以两位数显示时,此功能才起作用。如果格式类似于2018年9月25日,它将失败

我还没有找到直接从react intl提取日期格式的方法