为什么moment.js调用moment("24:33", "HH:mm")时返回Invalid Date?
问题原因
- Moment默认使用严格解析规则,
HH格式符对应的合法小时取值范围是0~23,你输入的24:33小时值超出范围,会直接被判定为非法时间,后续转UTC、格式化的操作都会返回Invalid Date,自然得不到预期的转换结果。
修复方案
开启Moment的宽松解析模式即可,解析时传入第三个参数为true,此时Moment会自动对超出范围的时间做合法偏移处理:
// 开启宽松解析后执行 moment("24:33", "HH:mm", true).utc().format('HH:mm')
你本地时区比UTC早5小时的情况下,24:33会被识别为当天时间加24小时33分,也就是次日的00:33,减去5小时的时差后自然返回你预期的19:33。
内容的提问来源于stack exchange,提问作者qweeee
相关产品推荐
相关产品推荐

