如何在MomentJs中为时间字符串添加小时和分钟?
解决Moment.js解析'15:30'报错“invalid date”的问题
直接调用moment('15:30')时,Moment.js无法精准识别这种仅含时分的时间格式,导致返回无效日期。解决核心是明确指定解析格式,让Moment.js知道如何处理输入字符串:
方法一:指定解析格式
在初始化moment实例时传入时间格式串'HH:mm',确保解析逻辑准确:
const time = '15:30'; const targetTime = moment(time, 'HH:mm') .add(2, 'hours') .add(40, 'minutes') .format('HH:mm'); console.log(targetTime); // 输出 '17:10'
也可以合并时间增量的添加操作,让代码更简洁:
const time = '15:30'; const targetTime = moment(time, 'HH:mm') .add({ hours: 2, minutes: 40 }) .format('HH:mm');
方法二:开启严格解析(可选)
如果需要校验输入格式的合法性,可以开启严格模式——当输入与指定格式不匹配时会返回无效日期,便于排查非法输入:
const time = '15:30'; const targetTime = moment(time, 'HH:mm', true) .add({ hours: 2, minutes: 40 }) .format('HH:mm');
内容的提问来源于stack exchange,提问作者kamolmachine
相关产品推荐
相关产品推荐

