以整小时为增量创建选择列表

Creating select list in full-hour increments

本文关键字:创建 选择 列表 小时      更新时间:2023-09-26

有没有一种方法可以生成如下标记:

<select> 
    <option value="0000">00:00AM</option>
    <option value="0100">01:00AM</option>
    <option value="0200">02:00AM</option>
    <option value="0300">03:00AM</option>
    <!--rest of options omitted for brevity-->
</select>

一直到晚上11点,

我正在使用Angular。

最好的方法是什么?

在某些控制器中,您应该预先生成以下值:

$scope.hours = {};
//first 12 hours
$scope.hours['0000'] = '12:00AM';
for(var i = 1; i < 12; ++i) {
    var hour = i < 10 ? '0' + i : i;
    $scope.hours[hour + '00'] = hour + ':00AM';
}
//last 12 hours
$scope.hours['1200'] = '12:00PM';
for(var i = 1; i < 12; ++i) {
    var hour = i < 10 ? '0' + i : i;
    $scope.hours[i + 12 + '00'] = hour + ':00PM';
}

然后在您的模板中:

<select> 
    <option ng-repeat="(value, label) in hours | orderBy: value" value="{{ value }}">
        {{ label }}
    </option>
</select>

检查这个小提琴:http://jsfiddle.net/hspqfouq/1/

您可以使用以下脚本:

<select id="hours">
</select>
<script>
var data="";
for (var i=0;i<12;i++)
{
  d=i*1;
  d1="0";
  d2="00";
  if (i>9) {d1="";}
 data+="<option value='"+d1+d+d2+"'>"+d1+d+":"+d2+"AM</option>";
}
var s=document.getElementById("hours");
s.innerHTML=data;
</script>

您可以在这个jsfiddle链接

中看到实时输出