gpt4 book ai didi

javascript - 更改 HH 的时间字符串 :mm am/pm to 24 hour time

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:55:00 25 4
gpt4 key购买 nike

我得到一个像这样的可变字符串:

上午 8:45

如果是下午,想要将其转换为 24 小时制。这样我就可以放下上午/下午并将其与其他东西一起使用。

我可以像这样轻松地删除上午/下午:

function replaceEnds(string) {
string = string.replace("am", "");
string = string.replace("pm", "");
return string;
}

当然,如果我这样做,我不知道字符串是上午还是下午,所以我不知道要在字符串上加上 12 小时使其成为 24 小时。

有人知道我该如何解决这个问题吗?我绝对不能更改我从变量中获得的输入,它始终是小时(12 小时制)、分钟以及上午或下午。

最佳答案

使用 moment.js :

moment(string, 'h:mm a').format('H:mm');

如果您想手动完成,这将是我的解决方案:

function to24Hour(str) {
var tokens = /([10]?\d):([0-5]\d) ([ap]m)/i.exec(str);
if (tokens == null) { return null; }
if (tokens[3].toLowerCase() === 'pm' && tokens[1] !== '12') {
tokens[1] = '' + (12 + (+tokens[1]));
} else if (tokens[3].toLowerCase() === 'am' && tokens[1] === '12') {
tokens[1] = '00';
}
return tokens[1] + ':' + tokens[2];
}

手动解决方案更难理解、不够灵活、缺少一些错误检查并且需要单元测试。一般来说,您通常应该更喜欢经过良好测试的流行库的解决方案,而不是您自己的解决方案(如果经过良好测试的库可用)。

关于javascript - 更改 HH 的时间字符串 :mm am/pm to 24 hour time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17664174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com