Estoy usando jonthornton/jquery-timepicker y no pude encontrar las horas y los minutos seleccionados.
Todo lo que pude encontrar fue una salida de cadena con el formato '10:30 p. m.'.
¿Se puede acceder a las horas y minutos directamente desde el mando?
Imaginé que serías capaz de hacer esto, pero no pude encontrarlo.
Lo mejor que he podido hacer es lo que sigue, ¿alguien tiene algo mejor?
$('#StartTime').on('change', function (timeControl) { var hoursString; if (timeControl.target.value.indexOf("am") >= 0) { hoursString = timeControl.target.value.replace("am", ":00 AM"); } else { hoursString = timeControl.target.value.replace("pm", ":00 PM"); } var oneDate = new Date(Date.parse("2000-01-01 " + hoursString)); var minutes = oneDate.getMinutes(); var hours = oneDate.getHours(); console.log("Hours : " + hours + " | Minutes : " + minutes); });La respuesta de larga data sería Moment.js, pero ahora se considera un proyecto heredado en modo de mantenimiento y no se recomienda para nuevos proyectos. Hay recomendaciones en su sitio web para reemplazos, pero traer una nueva dependencia para esto puede ser una exageración.
El valor que ingresa parece seguir un formato en el que podemos confiar para facilitar el análisis.
Formato: H:MMxx
Llave:
H = hora, 1-2 caracteresMM = minutos, siempre 2 caracteresxx = am o pm, siempre 2 caracteres var timeArray = timeControl.split(':'); var meridiem = timeArray[1].substring(2, 4); var hours = parseInt(timeArray[0]) + (meridiem === 'pm' ? 12 : 0); var minutes = parseInt(timeArray[1].substring(0, 2)); var seconds = 0; // Local time zone, read more: https://stackoverflow.com/a/29297375/5988852 var date = new Date(); date.setHours(hours, minutes, seconds); // If you want UTC instead utc = Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), hours, minutes, seconds ); var date = new Date(utc);