我想打印时间(小时)列表但过滤掉更早的时间。例如现在是下午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);
}
答案 0 :(得分:0)
如果您想在晚上显示正确的时间,请在定义日期时间之前尝试添加以下行。
var hours = (hours % 12 !== 0) ? (hours % 12) : 12;
var datetime = hours + ":" + d.getMinutes() + " " + ampm;
答案 1 :(得分:0)
您可以执行类似
的操作
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;
另一种方式是
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;