javascript - 在 JavaScript 中打印时间段

标签 javascript html

问题是,当我使用 localdate(这是我的开始时间)变量获取当前时间时,我也获取结束时间,因此我打印了这些值与 15 之间的时间增加时间的分钟数。

示例:当前时间为 13:04,因此后续时间段将为 13:19、13:34,依此类推,直到结束时间。

function ShowLocalDate() {
  var time1 = new Date();
  var time2 = new Date();
  var dNow = new Date();
  var localdate = dNow.getHours() + ':' + dNow.getMinutes();

  //meeting length
  var meetingLength = parseInt('15');

  //start time 
  var startTime = localdate
  var startHour = startTime.split(':')[0];
  var startMin = startTime.split(':')[1].replace(/AM|PM/gi, '');

  //end time
  var endTime = '11:00 PM';
  var endHour = endTime.split(':')[0];
  var endMin = endTime.split(':')[1].replace(/AM|PM/gi, '');

  //Check if start time is PM and adjust hours to military
  if (startTime.indexOf('PM') > -1) {
    if (startHour != 12) {
      startHour = parseInt(startHour) + 12;
    } else {
      startHour = parseInt(startHour);
    }
    console.log(startHour);
  }

  //Check if end time is PM and adjust hours to military
  if (endTime.indexOf('PM') > -1) {
    endHour = parseInt(endHour) + 12;
    console.log(endHour);
  }

  //Date API start time
  time1.setHours(parseInt(startHour));
  time1.setMinutes(parseInt(startMin));

  //Date API end time
  time2.setHours(parseInt(endHour));
  time2.setMinutes(parseInt(endMin));

  //Adding meeting length to start time, this value will be use for end    time
  time1.setMinutes(time1.getMinutes() + meetingLength);

  while (time1 < time2) {
    $('#etime').append('<option value="' + time1 + '">' + time1 + '</option>');
    time1.setMinutes(time1.getMinutes() + meetingLength);
  }
}
ShowLocalDate();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tr>
  <td>
    <select name="etime" id="etime">
      <option value="">--Select end time--</option>
    </select>
  </td>
</tr>
</tr>

JSFiddle:https://jsfiddle.net/6n458ze9/18/

但我想要这样,假设开始时间意味着当前时间是 13:04,那么下一次将是 13:20 而不是 13:19,再一次是 13:35 而不是 13:34,直到结束时间。

结束时间为晚上 11:00(这是固定的)。

提前谢谢您。

最佳答案

如果您想将时间四舍五入到 05、10、15 等分钟,您可以轻松地在原始时间上再添加几分钟,直到分钟数除以 5 等于 0,如下所示

  //Adding meeting length to start time, this value will be use for end    time
  var endTime = time2.getMinutes() + meetingLength;

    while (endTime % 5 != 0)  
        endTime++

time1.setMinutes(endTime);

关于javascript - 在 JavaScript 中打印时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094257/

相关文章:

javascript - 如何在运行时在单击事件时更改 html 按钮的类?

javascript - Leaflet 可以通过缩放而不是仅通过平移跳转到新世界副本吗?

javascript - 如何在 react 中显示图像数组中的图像

javascript - dataLayer.push后数据什么时候发送到google

javascript - 使用 ionic : Array return value 0 为 YouTube channel 构建混合移动应用程序

html - 如何将第二张图片移动到另一张图片下方并留出小间隙?

javascript - 呈现 HTML 文档缩略图

javascript - 如何在做出选择之前保持导航栏切换打开

html - 在导航栏下创建一个 Div 填满所有空间

javascript - amCharts 中 x 轴上的标签丢失