这是针对从12小时格式到军事/ 24小时时间的时间转换问题
标准输入:07:05:45PM
预期输出:19:05:45
标准/实际输出:019:05:45
问题出在输出开头的零 ^ 。
我尝试为小数系统设置基数为10的parseInt()
,但这没有任何效果。
这是以下代码的结果:
function main() {
var time = readLine();
var hours = parseInt(time.substr(0, 2), 10);
var minutes = parseInt(time.substr(3,5));
var seconds = parseInt(time.substr(6,8));
if ( time.indexOf('AM') !== -1 && hours === 12) {
time = time.replace('12', '00');
}
if (time.indexOf('PM') !== -1 && hours < 12) {
time = time.replace(hours, (hours + 12));
}
time = time.replace(/(AM|PM)/g, '');
console.log(time);
}
任何帮助将不胜感激!
答案 0 :(得分:1)
您可以重建字符串而不是使用replace。因为你在你的例子中使用了替换,你只需要用19代替7.如果有时间像12:12:12那样,使用replace也会引起问题。
离。
function main() {
var time = readLine();
var hours = parseInt(time.substr(0, 2), 10);
var minutes = time.substr(3,5);
var seconds = time.substr(6,8);
if ( time.indexOf('AM') !== -1 && hours === 12) {
hours = 0;
}
else if (time.indexOf('PM') !== -1 && hours < 12) {
hours += 12;
}
time = (hours < 10 ? "0" + hours : hours) + ':' + minutes + ':' + seconds;
console.log(time);
}