在我的MUI表单中,我使用
DatePicker
来选择用户的出发和返回日期。但是当我使用.toLocaleDateString()
时,它将我的日期设置为mm-dd-yyyy
格式。但我想将它们设置为dd-mm-yyyy
格式。为此,我在.toLocaleDateString()
中传递了'en-GB'
作为参数。但是在DatePicker的TextField
中,它显示一个红色边框像这样,预定义的日期(来自状态)也消失了。如果没有参数,它会显示mm-dd-yyyy
格式这个。从类似的先前问题中,我甚至尝试了通过moment
包来设置dt
变量为moment(new Date()).format("DD/MM/YYYY")
,但仍然在文本字段周围显示红色边框。我知道这个问题以前被问过很多次,我看了所有的解答,但没有找到解决办法。
日期选择器
const dt = new Date().toLocaleDateString();
console.log(dt);
const [formData, setFormData] = useState({
from: "",
to: "",
depart: dt,
return: dt,
noOfPassenger: 1,
tripType: "Return",
});
{/* App component */}
<div className="dates">
<LocalizationProvider dateAdapter={AdapterDateFns}>
<DatePicker
label="Departure Date"
disablePast
onChange={(e) =>
setFormData({
...formData,
depart: e.toLocaleDateString(),
})
}
value={formData.depart}
renderInput={(params) => <TextField {...params} required />}
/>
</LocalizationProvider>
</div>
TextField
:https://codesandbox.io/s/p268w?file=/demo.js 或者像这里一样使用DesktopDatePicker
:https://codesandbox.io/s/uuonn?file=/demo.js - Hleb ShypulainputFormat
,但它没有起作用。后来我通过添加date-fns
包并在日期选择器中设置输入格式来解决了这个问题。 - buzz