react-datetime-picker设置24小时制问题求助
解决react-datetime-picker强制24小时制显示的问题
针对你遇到的组件始终以12小时制显示时间的问题,可通过以下几个调整来修复:
1. 修正Locale格式
将locale="en_GB"改为locale="en-GB"——ECMAScript标准的locale代码使用短横线分隔,部分运行环境无法识别下划线格式,这会导致locale设置失效,组件 fallback 到默认的12小时制。
2. 显式设置is24Hour属性
虽然JSX中单独写is24Hour等价于is24Hour={true},但部分版本的组件需要显式赋值才能正确识别该配置,避免属性解析异常。
3. 确保value为有效Date对象
组件要求value必须是Date类型,如果values?.startDate是字符串或其他类型,组件无法正确解析时间格式,导致显示异常。建议添加类型校验,非Date类型时设为null。
4. 检查属性冲突(可选)
若同时设置format和timeFormat出现冲突,可尝试移除timeFormat,仅保留format来统一控制显示格式。
修改后的完整代码示例
import DateTimePicker from 'react-datetime-picker'; // ... <DateTimePicker clearIcon={null} format="yyyy-MM-dd HH:mm" onChange={handleStartDateChanges} disableClock disableCalendar className="text-black" value={values?.startDate instanceof Date ? values.startDate : null} locale="en-GB" is24Hour={true} />
额外建议
如果上述调整仍无效,尝试升级组件到最新稳定版本,旧版本可能存在属性兼容bug:
npm update react-datetime-picker # 或使用yarn yarn upgrade react-datetime-picker
内容的提问来源于stack exchange,提问作者Jennifer De Goede
相关产品推荐
相关产品推荐

