2 回答
TA贡献1859条经验 获得超6个赞
我有一个与上面非常相似的解决方案。他们更快。
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贡献2016条经验 获得超9个赞
这与 Vue 无关,但一般而言是关于 JavaScript 的。
您正在寻找的解决方案是按字符拆分军事时间字符串并输入到日期对象的某个地方 - 如果您想要完整的信息。
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);
这将为您提供一个完整的 Date 对象。从那里,您可以使用日期fns等库格式化时间。
或者,如果您不需要稍后要添加一些时间的功能,需要知道日期等,则可以跳过所有这些功能并直接操作军事时间字符串。
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);
另外,请注意,上述内容不一定是100%正确的。例如,我不确定目前12:59应该是你来自哪里的上午或下午,但我希望你明白它的要点。
添加回答
举报