我有一个if语句,在11:45之后将时间改回12:
i = (i >= 192) ? i - 192 : ( i >= 96) ? i - 96 : i
var mins = (i * 15 % 60)
var hours = Math.floor(i * 15 / 60)
var ampm = (hours >= 12) ? "PM" : "AM"
hours = (hours == 0) ? 12 : (hours >= 12) ? hours - 12 : hours;
var nextMins, nextHours = hours;
switch (mins) {
case 0:
mins = "";
nextMins = 15;
break;
case 45:
nextMins = "";
nextHours = hours+1;
break;
default:
nextMins = mins + 15;
break;
}
var time = hours + (mins == "" ? "" : ":" + mins) + " - " + nextHours + (nextMins == "" ? "" : ":" + nextMins) + ampm
Run Code Online (Sandbox Code Playgroud)
它以15分钟的间隔变化,问题是它将从12开始,但在再次达到12:00之后,它将显示为0:15,0:30,0:45.而不是12:15,12:30,12:45
我认为if语句的这一部分会这样做:
hours = (hours == 0) ? 12
Run Code Online (Sandbox Code Playgroud)
但是没有用?
最简单的方法可能就是
hours = (hours % 12) || 12;
Run Code Online (Sandbox Code Playgroud)
这种方式可以处理任何正整数达数小时(例如,36仍将返回12).
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |