javascript 如何转换时间 hh mm 格式?
how to covert time hhmm format in javascript?
这里我得到一个时间值 1700
。我想将其转换成这样的格式 5pm
。我试图用 moment
包来做到这一点。它有很多选项,我无法找到相关格式来实现我正在寻找的输出。
结果必须是这样的:
1700 -> 下午 5 点
0900 -> 上午 9 点
我现在的impl是
moment("1500", "hh").format('LT') => 3:00 PM
这里输出不同,必须像下午 3 点。
有什么办法可以做到这一点。帮我提出建议和反馈
moment().format("hA");
可以满足您的需求。参见 https://momentjs.com/docs/#/displaying/format/
您不需要使用momentjs;如果您确定您的输入时间将始终是一个 4 位数的字符串,您可以创建自己的简单格式化函数(以下代码只是基本概念,您可能需要对其进行一些改进以更好地满足您的需求):
function formatTime(str) {
const [hh, mm] = str.match(/[0-9]{2}/g);
const hours = parseInt(hh);
const ampm = hours < 12 ? 'am' : 'pm';
return `${hours === 12 ? hours : hours % 12}${parseInt(mm) > 0 ? `:${mm}` : ''}${ampm}`
}
// test
['1500', '0900', '1345', '0000', '1217', '1805'].forEach(item => console.log(formatTime(item)));
这里我得到一个时间值 1700
。我想将其转换成这样的格式 5pm
。我试图用 moment
包来做到这一点。它有很多选项,我无法找到相关格式来实现我正在寻找的输出。
结果必须是这样的:
1700 -> 下午 5 点
0900 -> 上午 9 点
我现在的impl是
moment("1500", "hh").format('LT') => 3:00 PM
这里输出不同,必须像下午 3 点。
有什么办法可以做到这一点。帮我提出建议和反馈
moment().format("hA");
可以满足您的需求。参见 https://momentjs.com/docs/#/displaying/format/
您不需要使用momentjs;如果您确定您的输入时间将始终是一个 4 位数的字符串,您可以创建自己的简单格式化函数(以下代码只是基本概念,您可能需要对其进行一些改进以更好地满足您的需求):
function formatTime(str) {
const [hh, mm] = str.match(/[0-9]{2}/g);
const hours = parseInt(hh);
const ampm = hours < 12 ? 'am' : 'pm';
return `${hours === 12 ? hours : hours % 12}${parseInt(mm) > 0 ? `:${mm}` : ''}${ampm}`
}
// test
['1500', '0900', '1345', '0000', '1217', '1805'].forEach(item => console.log(formatTime(item)));