更正 JavaScript 中的时间字符串
问题
我们要求编写一个 JavaScript 函数,该函数以“HH:MM:SS”格式的时间字符串作为输入。
但是增加了一个问题,因此许多时间字符串是损坏的,这意味着 MM 部分可能超过 60,SS 部分也可能超过 60。
我们的函数应对字符串进行必要的更改,并返回新的更正字符串。
例如 −
"08:11:71" -> "08:12:11"
示例
以下为代码 −
const str = '08:11:71'; const rectifyTime = (str = '') => { if(!Boolean(str)){ return str; }; const re = /^(\d\d):(\d\d):(\d\d)$/; if (!re.test(str)){ return null; }; let [h, m, s] = str.match(re).slice(1,4).map(Number); let time = h * 3600 + m * 60 + s; s = time % 60; m = (time / 60 |0) % 60; h = (time / 3600 |0) % 24; return [h, m, s] .map(String) .join(':'); }; console.log(rectifyTime(str));
输出
以下为控制台输出 −
08:12:11
广告