稍后使用 Javascript 中的循环打印

print later time using loop in Javascript

我想打印一个时间列表(小时)但过滤掉较早的时间。例如现在是中午 12 点,在列表中我想隐藏早于中午 12 点的时间。

我卡在这里了

var d = new Date();
var hours = d.getHours();
                var ampm = (hours >= 12) ? "PM" : "AM";
                var datetime = hours + ":" + d.getMinutes() + " " + ampm;

                console.log(datetime);

                var firstAm = '<li>12:00 AM</li>';
                $('.holder').append(firstAm);
                for (i = 1; i < 12; i++) {
                    var am = '<li>' + i + ':00 AM</li>';
                    $('.holder').append(am);
                }

                var firstPm = '<li>12:00 PM</li>';
                $('.holder').append(firstPm);
                for (i = 1; i < 12; i++) {
                    var pm = '<li>' + i + ':00 PM</li>';
                    $('.holder').append(pm);
                }

http://jsfiddle.net/29615mLb/

如果您想在晚上显示正确的时间,请尝试在定义日期时间之前添加以下行。

var hours = (hours % 12 !== 0) ? (hours % 12) : 12;
var datetime = hours + ":" + d.getMinutes() + " " + ampm;

你可以这样做

var d = new Date(),
  t;
for (var i = d.getHours() + 1; i <= 24; i++) {
  t = i % 12;
  t = t == 0 ? 12 : t;
  $('.holder').append('<li>' + t + ':00 ' + (i < 12 || i == 24 ? 'AM' : 'PM') + '</li>');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p class="holder"></p>


另一种方式是

var d = new Date(),
  till = new Date(),
  t, h, m;

d.setMinutes(d.getMinutes() + 30 - d.getMinutes() % 30, 0, 0);
till.setDate(d.getDate() + 1);
till.setHours(0, 0, 0, 0)

while (d <= till) {
  h = d.getHours();
  m = d.getMinutes();
  t = h % 12;
  t = t == 0 ? 12 : t;
  $('.holder').append('<li>' + (t < 10 ? '0' : '') + t + ':' + (m < 10 ? '0' : '') + m + ' ' + (h < 12 || h == 24 ? 'AM' : 'PM') + '</li>');
  d.setMinutes(m + 30)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p class="holder"></p>