首页 > 解决方案 > jquery timepicker时间开始问题

问题描述

我的代码中有时间选择器。代码如下。

   function getCurrentTime(date) {
    var hours = date.getHours(),
        minutes = date.getMinutes(),
        ampm = hours >= 12 ? 'pm' : 'am';

  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes < 10 ? '0'+minutes : minutes;

  return hours + ':' + minutes + ' ' + ampm;
}
 

    var cur_time = new Date();
            cur_time.setHours(cur_time.getHours() + 1);
            $('.pickup_time').timepicker({
                timeFormat: 'hh:mm p',
                interval: 30,
                minTime: getCurrentTime(new Date()),
                // minTime: '1',
                // maxTime: '11:30pm', 
                // startTime: '01:00',
                dynamic: false,
                dropdown: true,
                scrollbar: true           
            });
            $('.pickup_time').timepicker('setTime', cur_time);

使用此代码,我得到了如下图所示的下拉菜单。我真正想要的是我想从 2:00 开始时间,当时是 1:43。如果时间是 1:25,我希望它从 01:30 开始。

在此处输入图像描述

对此需要帮助的任何人都可以对此有所了解吗???

标签: javascriptjqueryjquery-pluginsdatetimepickertimepicker

解决方案


为了将当前时间四舍五入到下一个半小时,请getCurrentTime()按如下方式调整您的功能:

function getCurrentTime(date) {
  // extract hours and minutes from given date
  var hours = date.getHours(),
    minutes = date.getMinutes();

  // round minutes to half hour or next hour
  if (minutes <= 30) {
    minutes = "30";
  } else {
    minutes = "00";
    hours = (hours + 1) % 24; // loop on 24 hours
  }

  // calc if morning or afternoon
  var ampm = hours >= 12 ? "pm" : "am";

  // adjust hour to 12h format
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'

  return hours + ":" + minutes + " " + ampm;
}

推荐阅读