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

Javascript 将24小时格式转换为12小时格式,javascript,jquery,Javascript,Jquery,这可能很容易,但我想不出来。我正在尝试将24小时的时间转换为12小时的时间以显示在UI上 var hrs = '<%=Model.Scheduled.Value.Hour%>'; var hrs12 = hrs > 12 ? hrs - 12 : hrs; $("#ScheduledHour").val(hrs12); var-hrs=''; var hrs12=小时数>12?小时-12:小时; $(“#时间表小时”).val(hrs12); 但上述方法不起作用,因为hrs

这可能很容易,但我想不出来。我正在尝试将24小时的时间转换为12小时的时间以显示在UI上

var hrs = '<%=Model.Scheduled.Value.Hour%>';
var hrs12 = hrs > 12 ? hrs - 12 : hrs;
$("#ScheduledHour").val(hrs12);
var-hrs='';
var hrs12=小时数>12?小时-12:小时;
$(“#时间表小时”).val(hrs12);

但上述方法不起作用,因为hrs是一个字符串。关于如何使其工作有任何建议吗?

只需将
hrs
转换为一个数字:

hrs = '<%=Model.Scheduled.Value.Hour%>' * 1;
hrs=''*1;
而且,你的问题是误导性的。实际上,你要问的只是“如何在JavaScript中将字符串转换为数字?”在这种情况下,谷歌可能会帮你解决。

你可以使用
parseInt()

var-hrs='';
hrs=parseInt(hrs,10)//将值转换为整数
var hrs12=小时数>12?小时-12:小时;
$(“#时间表小时”).val(hrs12);

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


parseInt:

您可以将其转换为int:

var hrsInt = parseInt(hrs);
var-hrs=''
thrs=parseInt(小时,10);//因为hrs是字符串,所以需要将其转换为
//整数使用parseInt(str,基数),别忘了使用
//基数参数
var hrs12=thrs>12?thrs-12:thrs;
$(“#时间表小时”).val(hrs12);
函数格式日期(日期){
var d=新日期(日期);
var hh=d.getHours();
var m=d.getMinutes();
var s=d.getSeconds();
var dd=“AM”;
var h=hh;
如果(h>=12){
h=hh-12;
dd=“PM”;
}
如果(h==0){
h=12;
}

m=mWorks对我来说,只需使用
var hrs=parseInt('your hours string here');
这实际上不会产生有效的12小时format@dotNetNewbie你说它显示$(“#ScheduledHour”).val(hrs12)是什么意思?@Ramminson不是计算值,而是在val函数中显示hrs12。@dotNetNewbie这是不可能的,ScheduledHour是什么类型的元素?
?哎呀……对不起,我有另一行代码覆盖了它。非常感谢您的帮助。
var hrsInt = parseInt(hrs);
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);
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"));