• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

133
Vistas
¿Cómo convertir la hora militar a la hora estándar en javascript usando el siguiente ejemplo?

Quiero que la salida diga 11 p. m., por ejemplo, en lugar de 2300. No estoy seguro de cómo convertirlo. Todo lo demás está funcionando como quiero, pero no quiero la salida en tiempo militar.

 <script> var d = new Date(); var n = d.getDay(); var now = d.getHours() + "." + d.getMinutes(); var weekdays = [ ["Sunday", 13.00, 1700], ["Monday", 9.00, 2200], ["Tuesday", 9.00, 2200], ["Wednesday", 9.00, 2200], ["Thursday", 9.00, 2200], ["Friday", 9.00, 19.00], ["Saturday", 9.00, 17.00] ]; var day = weekdays[n]; ; if (now > day[1] && now < day[2] || now > day[3] && now < day[4]) { console.log("We are open today from "+ day[1]); document.getElementById('example').innerHTML = "We are open today from "+day[1]+"AM"+" to "+day[2]; } else { console.log("We are currently closed. We will open at"); document.getElementById('example').innerHTML = "We are currently closed. We will open at"+ day[1]; } </script>
almost 3 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Es posible que desee mostrar la hora de apertura y cierre como objetos de Date , por lo que sería más fácil compararlos con la fecha actual. También debería considerar usar un parcial para crear fechas porque sabemos que el año, el mes y el día del mes serían constantes entre todos los registros de programación. También se recomienda utilizar las interfaces proporcionadas por JS para manipular las fechas cuando sea posible. Aquí mejor usamos toLocaleString para obtener el formato de hora que deseamos. Entonces, el siguiente fragmento de código podría ser útil:

 const currentDate = new Date(); const createShceduleDate = (hours, minutes) => new Date( currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), hours, minutes ); const get12HourDate = (date) => date.toLocaleString("en-US", { hour: "numeric", hour12: true }); const schedule = [ ["Sunday", createShceduleDate(13, 0), createShceduleDate(17, 0)], ["Monday", createShceduleDate(9, 0), createShceduleDate(22, 0)], ["Tuesday", createShceduleDate(9, 0), createShceduleDate(22, 0)], ["Wednesday", createShceduleDate(9, 0), createShceduleDate(22, 0)], ["Thursday", createShceduleDate(9, 0), createShceduleDate(22, 0)], ["Friday", createShceduleDate(9, 0), createShceduleDate(22, 0)], ["Saturday", createShceduleDate(9, 0), createShceduleDate(22, 0)], ]; const matchingDate = schedule[currentDate.getDay()]; if (matchingDate[1] <= currentDate && matchingDate[2] >= currentDate) { console.log( `We are currently open. (${matchingDate[0]}, from ${get12HourDate( matchingDate[1] )} to ${get12HourDate(matchingDate[2])})` ); } else { document.getElementById( "example" ).innerHTML = `We are currently closed. We will open at ${get12HourDate( schedule[(currentDate.getDay() + 1) % 6][1] )}`; }
 <p id="example"></p>

almost 3 years ago · Juan Pablo Isaza Denunciar

0

Escribiría una función de ayuda para convertir horas militares a am/pm.

 const now = new Date(); const hoursOfOperation = [ {open: 13, close: 17}, {open: 9, close: 22}, {open: 9, close: 22}, {open: 9, close: 22}, {open: 9, close: 22}, {open: 9, close: 19}, {open: 9, close: 17} ]; function hourToString(hour) { if (hour === 0) return "Midnight"; else if (hour === 12) return "Noon"; else if (hour > 12) return `${hour-12} PM`; else return `${hour} AM`; // Shorter version without Midnight and Noon // return ((hour + 11) % 12 + 1) + (hour >= 12 ? " PM":" AM"); } const today = hoursOfOperation[now.getDay()]; if (now.getHours() >= today.open && now.getHours() < today.close) { document.getElementById('example').innerHTML = `We are open today from ${hourToString(today.open)} to ${hourToString(today.close)}`; } else { const nextDay = hoursOfOperation[(now.getDay() + 1) % 6]; document.getElementById('example').innerHTML = `We are currently closed. We will open tomorrow at ${hourToString(nextDay.open)}`; }
 <div id='example'></div>

almost 3 years ago · Juan Pablo Isaza Denunciar

0

Usaré una función para convertir la hora militar.

 function convertTime24to12(militarytime) { let time = militarytime/100 let hours = parseInt(time, 10)-12 return hours } var d = new Date(); var n = d.getDay(); var now = d.getHours() + "." + d.getMinutes(); var weekdays = [ ["Sunday", 13.00, 1700], ["Monday", 9.00, 2200], ["Tuesday", 9.00, 2200], ["Wednesday", 9.00, 2200], ["Thursday", 9.00, 2200], ["Friday", 9.00, 1900], ["Saturday", 9.00, 1700] ]; var day = weekdays[n]; if (now > day[1] && now < day[2] || now > day[3] && now < day[4]) { // console.log("We are open today from "+ day[1]); console.log("We are open today from "+day[1]+"AM"+" to "+convertTime24to12(day[2])+"PM"); // document.getElementById('example').innerHTML = "We are open today from "+day[1]+"AM"+" to "+convertTime24to12(day[2])+"PM"; } else { console.log("We are currently closed. We will open at " + day[1]); // document.getElementById('example').innerHTML = "We are currently closed. We will open at"+ day[1]; }
almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda