如何将HH:mm:ss格式时间字符串转为JS Date对象供DatePicker组件使用
实现方案
你用的DatePicker是time模式,只会读取Date对象里的时分秒数据,日期部分只要是合法值就不会影响组件展示和使用,直接按以下步骤处理即可:
第一步:封装转换函数
// 入参为HH:mm:ss格式的时间字符串 const convertTimeStrToDate = (timeStr) => { // 拆分字符串得到时、分、秒的数值 const [hours, minutes, seconds] = timeStr.split(':').map(Number); // 创建Date实例,默认用当前日期作为日期部分 const targetDate = new Date(); // 覆盖时分秒,毫秒设为0避免多余精度干扰 targetDate.setHours(hours, minutes, seconds, 0); return targetDate; }
第二步:在组件中调用
<DatePicker mode="time" locale="en_GB" date={convertTimeStrToDate("13:00:00")} />
注意事项
- 如果你需要固定日期部分而非使用当前日期,可自行指定年月日初始化Date实例,例如
const targetDate = new Date(2024, 0, 1),再设置时分秒即可 - 该函数兼容无前导零的时间格式,例如
"9:3:2"也可以正常转换 - 请确保输入的时间字符串取值合法(小时0-23,分钟/秒0-59),否则会出现时间自动进位的异常情况
内容的提问来源于stack exchange,提问作者FortuneCookie
相关产品推荐
相关产品推荐

