Time am pm

Hi,

I am having trouble getting my time to display correctly. Everything works great apart from 12pm display as 12am, any ideas why?

this is my function that runs in a setinterval.

function showTime() {
    myDate_num += 1*60*1000;
    my_date.setTime(myDate_num);
    hour = my_date.getHours();
    min = my_date.getMinutes();
    if (min<10) {
        min = "0"+min;
    }
    if (hour == 0) {
        hour = 12;
    }
    if (hour>12) {
        hour -= 12;
        ampm = "pm";
    } else {
        ampm = "am";
    }
    test.text = hour+":"+min+ampm;
}