将 12 小时时钟值转换为 24 小时时钟值
Transform 12h clock values to 24h clock values
给定一些包含时钟值的字符串,例如“12.00 am - 4.00 pm”、“4.00 - 9.00 am”和“5.00 am - 9.00 am、1.00 - 8.00 pm”,我如何转换每个字符串将它们转换为等效的 24 小时制,在本例中为“12:00-16:00”、“4.00-9.00”和“5.00-9.00、13.00-20.00”?
var str = "12.00 am - 4.00 pm\n4.00 - 9.00 am\n5.00 am - 9.00 am\n1.00 - 8.00 pm";
var reg = /(\d+\.\d+)( am| pm|)? - (\d+\.\d+) (am|pm)/g;
str.replace(reg,function myfun(g,g1,g2,g3,g4){
if(!g2){
g2 = g4
}
if(g2=='pm'){
g1 = (parseInt(g1)+12)+".00";
}
if(g4=='pm'){
g3 = (parseInt(g3)+12)+".00";
}
return g1+" - "+g3;
});
我用 javascript 和正则表达式试过了。
Result:
12.00 - 16.00
4.00 - 9.00
5.00 - 9.00
13.00 - 20.00
给定一些包含时钟值的字符串,例如“12.00 am - 4.00 pm”、“4.00 - 9.00 am”和“5.00 am - 9.00 am、1.00 - 8.00 pm”,我如何转换每个字符串将它们转换为等效的 24 小时制,在本例中为“12:00-16:00”、“4.00-9.00”和“5.00-9.00、13.00-20.00”?
var str = "12.00 am - 4.00 pm\n4.00 - 9.00 am\n5.00 am - 9.00 am\n1.00 - 8.00 pm";
var reg = /(\d+\.\d+)( am| pm|)? - (\d+\.\d+) (am|pm)/g;
str.replace(reg,function myfun(g,g1,g2,g3,g4){
if(!g2){
g2 = g4
}
if(g2=='pm'){
g1 = (parseInt(g1)+12)+".00";
}
if(g4=='pm'){
g3 = (parseInt(g3)+12)+".00";
}
return g1+" - "+g3;
});
我用 javascript 和正则表达式试过了。
Result:
12.00 - 16.00
4.00 - 9.00
5.00 - 9.00
13.00 - 20.00