# Need Fix on Convert standard time to Military

I got this function off of this site from an expert but it's flawed.

For example:

12:00 AM is returning 12:00, when it actually should be returning 00:00.
It's pretty screwed up.. I can post my conversion code for doing Military to Standard if that helps.
Thanks

function to_military( val )  {
var pm = 0, hour = 0, min = 0;
if( val.search( /PM/i ) >= 0 )
pm = 12, val = val.replace( /PM/i, "" );
if( val.search( /AM/i ) >= 0 )
val = val.replace( /AM/i, "" );
var vals = val.split( /[^0-9]+/ );
hour = parseInt( vals[ 0 ] );
if( hour > 24 ) hour = 0;
if( hour <= 12 ) hour = ( hour + pm ) % 24;
if( hour < 10 ) hour = "0" + hour;
min = ( vals.length > 1 ) ? parseInt( vals[ 1 ] ) : 0;
if( min < 10 ) min = "0" + min;
return hour + ":" + min;
}

Here's some easy test code to copy/paste so you can test.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<script>
function to_military( val )  {
var pm = 0, hour = 0, min = 0;
if( val.search( /PM/i ) >= 0 )
pm = 12, val = val.replace( /PM/i, "" );
if( val.search( /AM/i ) >= 0 )
val = val.replace( /AM/i, "" );
var vals = val.split( /[^0-9]+/ );
hour = parseInt( vals[ 0 ] );
if( hour > 24 ) hour = 0;
if( hour <= 12 ) hour = ( hour + pm ) % 24;
if( hour < 10 ) hour = "0" + hour;
min = ( vals.length > 1 ) ? parseInt( vals[ 1 ] ) : 0;
if( min < 10 ) min = "0" + min;
return hour + ":" + min;
}
</script>
<table>
<tr>
<td>from standard&nbsp;&nbsp;<input type="text" onChange="this.value=to_military(this.value)"></td>
</tr>
</table>
</body>
</html>
LVL 6
###### Who is Participating?

Commented:
You don't need to do all that. This is much simpler...

var dt = new Date("1/1/2000 " + val);
var hour = dt.getHours();
var min = dt.getMinutes();
etc.

And it even validates whether the time is a valid time string.
0

Commented:
if( hour == 12 ) hour = 0;
?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.