这可能真的很容易,但我无法弄清楚。我正在尝试将 24 小时时间转换为 12 小时时间以显示在 UI 上。
var hrs = '<%=Model.Scheduled.Value.Hour%>';
var hrs12 = hrs > 12 ? hrs - 12 : hrs;
$("#ScheduledHour").val(hrs12);
但以上不起作用,因为 hrs 是一个字符串。关于如何使它工作的任何建议?
这可能真的很容易,但我无法弄清楚。我正在尝试将 24 小时时间转换为 12 小时时间以显示在 UI 上。
var hrs = '<%=Model.Scheduled.Value.Hour%>';
var hrs12 = hrs > 12 ? hrs - 12 : hrs;
$("#ScheduledHour").val(hrs12);
但以上不起作用,因为 hrs 是一个字符串。关于如何使它工作的任何建议?
你可以使用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);
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);
只需转换hrs
为数字:
hrs = '<%=Model.Scheduled.Value.Hour%>' * 1;
另外,您的问题具有误导性。你真正要问的是“如何在 JavaScript 中将字符串转换为数字?” 在这种情况下,谷歌可能会帮助你。
您需要将 hrs 变量转换为数字。有很多方法可以做到这一点,但 parseInt 可能是你最好的选择......
您可以将其转换为 int:
var hrsInt = parseInt(hrs);
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"));