在当天禁用时间戳的时间不能正常工作

时间:2015-03-02 14:43:20

标签: javascript jquery timepicker

<body>
    <p id="datepairExample">
        <input type="text" id="date" class="date start" /> <input id="time"
        type="text" class="time start" />
    </p>
</body>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/datepair.js"></script>
<script type="text/javascript" src="js/bootstrap-datepicker.js"></script>
<script type="text/javascript" src="js/jquery.datepair.js"></script>
<script type="text/javascript" src="js/jquery.timepicker.js"></script>
<script type="text/javascript" src="js/site.js"></script>


<script>
    $(document).ready(function() {
        $('#datepairExample .time').timepicker({
        'showDuration' : true,
        'timeFormat' : 'g:ia'
    });

    $('#datepairExample .date').datepicker({
        startDate : "0d"
    });
    $('#datepairExample .date').datepicker().on('changeDate', function(ev) {
        var x = new Date();
        var s = document.getElementById("date").value + "";
        if (s.charAt(0) == '0') {
            s = s.substring(1, s.length);
        }

        if (x.toLocaleDateString() == s) {
            alert("abc");
            $('#datepairExample .time').timepicker({
                'disableTimeRanges' : [ [ '12am', x ] ]
            });
        }
        /* else{
            alert("pqr");
            $('#datepairExample .time').timepicker({
                'showDuration' : true,
                'timeFormat' : 'g:ia'
            });

        } */
    });

    //$("#datepairExample .date").datepicker("option", "startDate", -1);
    /*$(function() {
        $("#datepairExample .date").datepicker({
            numberOfMonths : 3,
            showButtonPanel : true,
            minDate : x
        });
    }); */

    // initialize datepair
    $('#datepairExample').datepair();

    });
  // initialize input widgets first
  </script>

如果仅在日期选择器中选择当前日期,则禁用时间正常,如果在任何日期之后选择当天,则无法正常工作。

所以基本上,只有在首次选择的时候才会禁用时间,即使选择的日期不是当前日期,也会在禁用后启用日期。

我已经使用'alert'语句通过再次选择日期来检查块是否正在执行,它们正在执行,但输出没有变化。提前感谢任何有意帮助我的人。

1 个答案:

答案 0 :(得分:0)

试试这个

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 timeOptions = {
            'timeFormat': 'h:i A',
            'disableTimeRanges': [['12am', getCurrentTime(new Date())]]
        };

&安培;你可以用这个

 var timeOptions = {
        'timeFormat': 'h:i A',
        'minTime': getCurrentTime(new Date())
    };