将24小时格式转换为12小时格式

时间:2012-07-16 16:18:21

标签: javascript jquery

这可能很容易,但我无法弄清楚。我正在尝试将24小时时间转换为12小时时间以在UI上显示。

var hrs = '<%=Model.Scheduled.Value.Hour%>';
var hrs12 = hrs > 12 ? hrs - 12 : hrs;
$("#ScheduledHour").val(hrs12);

但是上面的工作并不合适,因为hrs是一个字符串。关于如何使这个工作的任何建议?

6 个答案:

答案 0 :(得分:2)

您可以使用parseInt()

var hrs = '<%=Model.Scheduled.Value.Hour%>';
hrs = parseInt(hrs, 10) // converts the value to an integer
var hrs12 = hrs > 12 ? hrs - 12 : hrs;
$("#ScheduledHour").val(hrs12);

答案 1 :(得分:2)

var hrs = '<%=Model.Scheduled.Value.Hour%>'
    thrs = parseInt(hrs, 10);  // As hrs is string, so you need to convert it to
                               // integer using parseInt(str, radix), don't forget to use 
                               // radix parameter

var hrs12 = thrs > 12 ? thrs - 12 : thrs;
$("#ScheduledHour").val(hrs12);

答案 2 :(得分:1)

只需将hrs转换为数字:

hrs = '<%=Model.Scheduled.Value.Hour%>' * 1;

此外,您的问题具有误导性。真的,你要问的是“我如何将字符串转换为JavaScript中的数字?”在这种情况下,谷歌可能会帮助你。

答案 3 :(得分:1)

您需要将hrs变量转换为数字。有很多方法可以做到这一点,但是parseInt可能是你最好的选择......

parseInt:http://www.w3schools.com/jsref/jsref_parseint.asp

答案 4 :(得分:1)

您可以将其转换为int:

var hrsInt = parseInt(hrs);

答案 5 :(得分:0)

function formatDate(date) {
    var d = new Date(date);
    var hh = d.getHours();
    var m = d.getMinutes();
    var s = d.getSeconds();
    var dd = "AM";
    var h = hh;
    if (h >= 12) {
        h = hh-12;
        dd = "PM";
    }
    if (h == 0) {
        h = 12;
    }
    m = m<10?"0"+m:m;

    s = s<10?"0"+s:s;

    /* if you want 2 digit hours:
    h = h<10?"0"+h:h; */

    var pattern = new RegExp("0?"+hh+":"+m+":"+s);

    var replacement = h+":"+m;
    /* if you want to add seconds
    replacement += ":"+s;  */
    replacement += " "+dd;    

    return date.replace(pattern,replacement);
}

alert(formatDate("February 04, 2011 12:00:00"));