Date 从react intl中提取日期格式
我有一个使用日期选择器的组件。datepicker需要适合momentjs模式的dateFormat属性,例如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' 我已经找到了,但唯一的答案依
'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提取日期格式的方法