稍后在Javascript中使用循环打印

时间:2015-03-05 03:40:50

标签: javascript jquery time

我想打印时间(小时)列表但过滤掉更早的时间。例如现在是下午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/

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以执行类似

的操作

&#13;
&#13;
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>');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p class="holder"></p>
&#13;
&#13;
&#13;


另一种方式是

&#13;
&#13;
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)
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p class="holder"></p>
&#13;
&#13;
&#13;