所以我有43个单选按钮。当选择其中一个时,它将返回其索引号。它是零基础的,所以0-42。每个索引对应于特定时间。 0是早上8:00,42是晚上10:00,每个索引增加20分钟的时间。本质上,我正在尝试生成我需要的时间,而无需为每个索引手动创建if语句。这是我到目前为止破碎的代码。
function decipherIndex(radx) {
var actime = "";
var hr = 8;
var min = 0;
var day = "am";
for (i=0;i<radx;i++) {
min = min + 20;
if (min = 60) {
hr = hr + 1;
min = 0;
}
if (hr = 13) {
hr = 0;
day = "pm";
}
}
actime = hr + ":" + min + day;
alert(actime);
}
希望有人可以帮我在这里完成我的逻辑。 radx是传递给函数的索引。
答案 0 :(得分:3)
if (min = 60) {
hr = hr + 1;
min = 0;
}
if (hr = 13) {
hr = 0;
day = "pm";
}
您使用=
进行分配,因此min
和hr
始终为0
,day
始终为"pm"
。使用==
或===
进行比较:
if (min == 60) {
hr = hr + 1;
min = 0;
}
if (hr == 13) {
hr = 0;
day = "pm";
}
但是,不需要循环;你只需要一点点数学。
function decipherIndex(i) {
var t = 60 * 8 + i * 20;
var min = t % 60;
var hr = t / 60 | 0;
return hr % 12 + ':' + (min < 10 ? '0' : '') + min + (hr >= 12 ? ' PM' : ' AM');
}