javascript - 如果时间已过,则从选择框中删除代表时间的项目

标签 javascript jquery datetime drop-down-menu momentjs

我有一个看起来像这样的选择框,其中我有从早上 5:00 到晚上 8:45 的时间,以 15 分钟为增量。在 JS 或 JQuery 中,我想在 JS/JQuery 中获取当前本地时间,然后删除当前时间之前的所有时间。前任。如果是下午 4:01,则​​在下午 4:15 之前删除所有选项

<select name="selectBox" id="selectBox">
  <option value="1">5:00 AM</option>
  <option value="2">5:15 AM</option>
  <option value="3">5:30 AM</option>
  <option value="4">5:45 AM</option>
  ...
  ...
  ...
  <option value="63">8:45 PM</option>
</select>

我如何计算我需要从 moment.js 给定本地时间删除的值?我可以获得小时数 (0-23) 和分钟数 (0-59)

最佳答案

打印后无需删除选项。您可以忽略打印无效选项。请参阅下面的代码。

var myDiv = document.getElementById("sel");

var selectList = document.createElement("select");
selectList.id = "mySelect";
myDiv.appendChild(selectList);

var date = new Date("", "", "", 5, 0, 0) // our start time
var cur = new Date() // gets current date
var curhr = cur.getHours() // get current hours 
var curmin = cur.getMinutes() // get current minutes 
var curTime = new Date("", "", "", curhr, curmin, 0) // creates new time 
var hours = Math.abs(curTime - date) / 36e5; // finds the difference
var printFrom = Math.abs(hours / .25) // converts it into a value b/w 0-63

var min = 45;
var hr = 4;
var end = " AM"; // for printing AM and PM
for (var i = 0; i < 64; i++) {
  min += 15;
  if (min % 60 == 0) {
    min = 00;
    hr++;
  }
  // setAttribute("disabled", "true")

  // prints valid option
  var option = document.createElement("option");
  if (i <= parseInt(printFrom)) {
    option.setAttribute("disabled", "true");
  }
  option.value = i;
  if (hr == 12) {
    end = " PM";
  }

  if (min % 60 == 0) {
    option.text = hr.toString() + ":00" + end;
  } else {
    option.text = hr.toString() + ":" + min.toString() + end;
  }
  selectList.appendChild(option);
}
<div id="sel"></div>

注意:我已经更新了我的答案以禁用无效选项。如果不需要,您可以删除 else 部分 i > parseInt(printFrom)

关于javascript - 如果时间已过,则从选择框中删除代表时间的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48456324/

相关文章:

Python 3如何格式化为yyyy-mm-ddThh :mm:ssZ

javascript - 以非阻塞顺序循环异步回调

javascript - 使用 webkit 浏览器的谷歌地图地理定位错误

javascript - 从本地存储检索数据

javascript - 日期格式插入数据库 + 4 小时

powershell - 使用 UniversalTime 在 PowerShell 中处理纪元时间

javascript - 如何在 html 中一秒钟后将密码字段显示为星号

php - 基于用户选择的数字的 HTML For 循环

jquery - 如何使用 Jquery Knob 显示单位

javascript - 如何使用 Jquery 或 Javascript 将元素更改为单击一次后不可单击