如何使用javascript将时间从24小时格式转换为12小时格式?
该函数以24小时格式返回时间。如何使用javascript将时间从24小时格式转换为12小时格式?,javascript,time,Javascript,Time,该函数以24小时格式返回时间。 function fomartTimeShow(h) { return h < 10 ? "0" + h + ":00" : h + ":00"; } 函数fomartTimeShow(h){ 返回h
function fomartTimeShow(h) {
return h < 10 ? "0" + h + ":00" : h + ":00";
}
函数fomartTimeShow(h){
返回h<10?“0”+h+“:00”:h+“:00”;
}
以24小时格式返回时间。我希望将时间转换为12小时格式。任何帮助都将不胜感激。
谢谢。只需使用模数12:
function formatTimeShow(h_24) {
var h = h_24 % 12;
return (h < 10 ? '0' : '') + h + ':00';
}
还请注意,您可以通过查看小时数是否小于12(am)或等于/大于12(pm),轻松添加子午线:
函数格式时间显示(h_24){
var h=h_24%12;
如果(h==0)h=12;
返回(h<10?'0':'')+h+':00'+(h_24<12?'am':'pm');
}
注意:以上所有操作都假设此函数的参数为0到23之间的整数。您可以尝试以下操作:
function fomartTimeShow(h) {
var ampm = "am"
if (h >= 12)
ampm = "pm"
h = h % 12;
if (h == 0)
h = 12;
return h ":00" + ampm;
}
函数fomartTimeShow(h){
var s=(h%24<12)?“am”:“pm”,h=h%12 | | 12;
返回(h<10?+0”+h:h)+“:00”+”+s;
}
我确信这将是Ben Lee答案的更简洁的公式化版本,包括h=0和h=12的情况:
function fomartTimeShow(h_24) {
var h = ((h_24 + 11) % 12)+1;
return (h < 10 ? '0' : '') + h + ':00';
}
功能预演(h_24){
var h=((h_24+11)%12)+1;
返回值(h<10?'0':'')+h+':00';
}
或包括上午/下午:
function fomartTimeShow(h_24) {
var h = ((h_24 + 11) % 12)+1;
return (h < 10 ? '0' : '') + h + ':00' + (h_24 < 12 ? 'am' : 'pm');
}
功能预演(h_24){
var h=((h_24+11)%12)+1;
返回(h<10?'0':'')+h+':00'+(h_24<12?'am':'pm');
}
如果你的时间是这样的话,“16:26”、“12:50”、“05:23”等等。
然后,您可以通过此功能轻松地将它们转换为12小时格式,如“下午4:26”、“下午12:50”、“上午5:23”,等等
function convertTo12Hour(oldFormatTime) {
console.log("oldFormatTime: " + oldFormatTime);
var oldFormatTimeArray = oldFormatTime.split(":");
var HH = parseInt(oldFormatTimeArray[0]);
var min = oldFormatTimeArray[1];
var AMPM = HH >= 12 ? "PM" : "AM";
var hours;
if(HH == 0){
hours = HH + 12;
} else if (HH > 12) {
hours = HH - 12;
} else {
hours = HH;
}
var newFormatTime = hours + ":" + min + " " + AMPM;
console.log(newFormatTime);
}
还有一个Javascript函数可以将24小时转换为12小时,但与此问题的所有其他答案不同,此函数易于阅读
function timeTo12(time){
var parts = time.split(':');
var hours = parseInt(parts[0]);
var minutes = parts[1];
if(hours >= 12){
var newhours = parseInt(hours) - 12;
var meridiem = "pm";
}else{
var newhours = parseInt(hours);
var meridiem = "am";
}
if(newhours == 0) newhours = "12";
var newtime = newhours + ":" + minutes + " " + meridiem;
return newtime;
}
那么
h
只是一个介于0和23之间的整数?你尝试过什么?如果你做了大量的日期/时间解析,那么你可能会感兴趣去看看。这在午夜或中午都不起作用。它将显示这些的“00:00am”和“00:00pm”。您应该检查值是否为“0”,并将其替换为“12”。在h=h%12之后代码>,h
永远不会是=12
。谢谢Ben Lee和M42,你们都是对的。我修改了代码以反映这一点。
function fomartTimeShow(h_24) {
var h = ((h_24 + 11) % 12)+1;
return (h < 10 ? '0' : '') + h + ':00' + (h_24 < 12 ? 'am' : 'pm');
}
function convertTo12Hour(oldFormatTime) {
console.log("oldFormatTime: " + oldFormatTime);
var oldFormatTimeArray = oldFormatTime.split(":");
var HH = parseInt(oldFormatTimeArray[0]);
var min = oldFormatTimeArray[1];
var AMPM = HH >= 12 ? "PM" : "AM";
var hours;
if(HH == 0){
hours = HH + 12;
} else if (HH > 12) {
hours = HH - 12;
} else {
hours = HH;
}
var newFormatTime = hours + ":" + min + " " + AMPM;
console.log(newFormatTime);
}
function timeTo12(time){
var parts = time.split(':');
var hours = parseInt(parts[0]);
var minutes = parts[1];
if(hours >= 12){
var newhours = parseInt(hours) - 12;
var meridiem = "pm";
}else{
var newhours = parseInt(hours);
var meridiem = "am";
}
if(newhours == 0) newhours = "12";
var newtime = newhours + ":" + minutes + " " + meridiem;
return newtime;
}