0

你将如何创建一个包含值的数组,每个小时一个,包括 AM/PM,从 12 AM 开始,到 11 PM 在 JavaScript 中结束?

4

3 回答 3

5

坦率地说,这是最有效的方法:

var hours = [ '12 AM',  '1 AM', '2 AM', '3 AM',  '4 AM',  '5 AM',
               '6 AM',  '7 AM', '8 AM', '9 AM', '10 AM', '11 AM',
              '12 PM',  '1 PM', '2 PM', '3 PM',  '4 PM',  '5 PM',
               '6 PM',  '7 PM', '8 PM', '9 PM', '10 PM', '11 PM'  ];
于 2010-02-03T22:00:37.310 回答
4

有一百万种方法可以做到这一点。这是一个:

var theHours = [];
for (var i=0; i<= 23; i++) {
    theHours[i] = (i == 0) ? "12 AM" : ((i <12) ? i + " AM" : (i-12 || 12) + " PM");
}

返回

[“上午 12 点”、“上午 1 点”、“上午 2 点”、“上午 3 点”、“上午 4 点”、“上午 5 点”、“上午 6 点”、“上午 7 点”、“上午 8 点”、“上午 9 点” 、“上午 10 点”、“上午 11 点”、“下午 12 点”、“下午 1 点”、“下午 2 点”、“下午 3 点”、“下午 4 点”、“下午 5 点”、“下午 6 点”、“下午 7 点” 、“晚上 8 点”、“晚上 9 点”、“晚上 10 点”、“晚上 11 点”]

于 2010-02-03T21:56:25.913 回答
0

这是我之前使用的一种方法:

var hour,meridien;
cow=['12 am'];
for(i=0;i<23;i++){
  if(i>11){hour=i-11;meridien=(hour==12)?'am':'pm';}
  else{hour=i+1;meridien=(hour==12)?'pm':'am';}
  cow.push(hour+' '+meridien);
  }

返回

["12 am", "1 am", "2 am", "3 am", "4 am", "5 am", "6 am", "7 am", "8 am", "9 am", "10 am", "11 am",
 "12 pm", "1 pm", "2 pm", "3 pm", "4 pm", "5 pm", "6 pm", "7 pm", "8 pm", "9 pm", "10 pm", "11 pm"]
于 2010-02-03T22:10:01.903 回答