[Actually the “new” version is nearly a month old at this point but I forgot to do an entry to announce it.]
After digging I did find (and fix) the problem. As you might expect to parse a time with a 12-hour time you need to take the time given and add 12 to it (if “PM”) to convert it to a 24-hour clock. To do this I did some simple addition:
Hours = Hours + 12;
Although there are many ways to fix this I decided to force the conversion by using the parseInt() function like so (the “10” indicates that you want to parse the value as base 10):
Hours = parseInt(Hours, 10) + 12;
This fixed the problem nicely. In the end, a pretty silly error that I should have caught much sooner.