组件
<DateInput
options={{ format: "MM/DD/YYYY", clearable: true }}
className="location-input" label="Purchase Date" source="PurchaseDate"
validate={validatePurchaseDate}
/>
从文档中,您可以使用format
和parse
公开的方法格式化组件的输入/输出:
const dateFormatter = v => {
// v is a `Date` object
if (!(v instanceof Date) || isNaN(v)) return;
const pad = '00';
const yy = v.getFullYear().toString();
const mm = (v.getMonth() + 1).toString();
const dd = v.getDate().toString();
return `${yy}-${(pad + mm).slice(-2)}-${(pad + dd).slice(-2)}`;
};
const dateParser = v => {
// v is a string of "YYYY-MM-DD" format
const match = /(d{4})-(d{2})-(d{2})/.exec(v);
if (match === null) return;
const d = new Date(match[1], parseInt(match[2], 10) - 1, match[3]);
if (isNaN(d)) return;
return d;
};
<DateInput source="isodate" format={dateFormatter} parse={dateParser} />
参考:https://marmelab.com/react-admin/Inputs.html#transforming-记录的输入值
如果这是您想要的确切且唯一的更改-您可以使用具有以下值的locale
设置:
- "en-US":年月日
- "en-GB":年月日
这是一种破解,但也是一种无痛的简单解决方案。