从 react-intl 中提取日期格式
Extract the date format from react-intl
我有一个使用日期选择器的组件。日期选择器需要符合 momentjs 模式的日期格式 属性,例如 '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',这个函数将 return 'MM/DD/YYYY',Moment.js.
可以使用的格式
此功能仅在您知道月份和日期始终以两位数显示时才有效。如果格式类似于 9/25/2018,它将失败。
我还没有找到直接从 react-intl 中提取日期格式的方法。
我有一个使用日期选择器的组件。日期选择器需要符合 momentjs 模式的日期格式 属性,例如 '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',这个函数将 return 'MM/DD/YYYY',Moment.js.
可以使用的格式
此功能仅在您知道月份和日期始终以两位数显示时才有效。如果格式类似于 9/25/2018,它将失败。
我还没有找到直接从 react-intl 中提取日期格式的方法。