2 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
我有一個(gè)與上面非常相似的解決方案。他們更快。
https://jsfiddle.net/goofballtech/gom4rvst/31/
fromMilTime: function(time){
if(parseInt(time) <= 1259){
return `${time.slice(0,2).padStart(2, '0')}:${time.slice(2).padStart(2, '0')} AM`
}else if (parseInt(time) >= 1300 && parseInt(time) <= 2359){
let math = parseInt(time) - 1200
let temp = math.toString()
return `${temp.slice(0,1).padStart(2, '0')}:${temp.slice(2,3).padStart(2, '0')} PM`
}
}

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊
這與 Vue 無(wú)關(guān),但一般而言是關(guān)于 JavaScript 的。
您正在尋找的解決方案是按字符拆分軍事時(shí)間字符串并輸入到日期對(duì)象的某個(gè)地方 - 如果您想要完整的信息。
var hrs, min, result, time;
time = '1100';
hrs = time.slice(0, 2);
min = time.slice(2, 4);
console.log(hrs, min);
result = new Date;
result.setHours(hrs);
result.setMinutes(min);
console.log(result);
這將為您提供一個(gè)完整的 Date 對(duì)象。從那里,您可以使用日期fns等庫(kù)格式化時(shí)間。
或者,如果您不需要稍后要添加一些時(shí)間的功能,需要知道日期等,則可以跳過(guò)所有這些功能并直接操作軍事時(shí)間字符串。
var hrs, min, result, time;
time = '1100';
hrs = time.slice(0, 2);
min = time.slice(2, 4);
if (parseInt(time) > 1259) {
result = `${hrs - 12}:${min} PM`;
} else {
result = `${hrs}:${min} AM`;
}
console.log(result);
另外,請(qǐng)注意,上述內(nèi)容不一定是100%正確的。例如,我不確定目前12:59應(yīng)該是你來(lái)自哪里的上午或下午,但我希望你明白它的要點(diǎn)。
添加回答
舉報(bào)