timepicker不允许hourMax值超过99

时间:2015-02-04 11:20:19

标签: javascript jquery datetimepicker timepicker

如果我将hourMax保持在99以上,则只将最后两位数作为hourMax值。 例如:如果hourMax:139它允许最多39。

如果要在脚本选项卡中进行检查,请将以下链接中的hourMax更改为139&跑到那里。 demo

2 个答案:

答案 0 :(得分:1)

timepicker(顾名思义)旨在选择一天中的时间(即通常在0到23小时之间),而不是时间间隔。也许你应该看看jQuery Time Entry。它有一个例子"无限小时"在" Formats"。

答案 1 :(得分:0)

您可以使用微秒和毫秒进行操作。

例如:

/*HERE IS THE OVERRIDE OF THE TIMEPICKER FUNCTION, 
YOU CAN PUT THIS INTO A CUSTOM FOLDER AND FILE AND 
CALL IMPLEMENT IT AFTER THE jquery-ui-timepicker.addon.js 
like jquery-ui-timepicker.addon.custom.js for example*/

(function ($) {
    $.datepicker.formatTime= function (format, time, options) {
        options = options || {};
        options = $.extend({}, $.timepicker._defaults, options);
        time = $.extend({
            hour: 0,
            minute: 0,
            second: 0,
            millisec: 0,
            microsec: 0,
            timezone: null
        }, time);

        var tmptime = format,
            ampmName = options.amNames[0],
            hour = parseInt(time.hour, 10);

        if (hour > 11) {
            ampmName = options.pmNames[0];
        }

        tmptime = tmptime.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g, function (match) {
            switch (match) {
            case 'HH':
                return ('0' + hour).slice(-2);
            case 'H':
                return hour;
            case 'hh':
                return ('0' + convert24to12(hour)).slice(-2);
            case 'h':
                return convert24to12(hour);
            case 'mm':
                return ('0' + time.minute).slice(-2);
            case 'm':
                return time.minute;
            case 'ss':
                return ('0' + time.second).slice(-2);
            case 's':
                return time.second;
            case 'l':
                return ('0' + time.millisec).slice(-3);
            case 'c':
                return ('0' + time.microsec).slice(-2);
            case 'z':
                return $.timepicker.timezoneOffsetString(time.timezone === null ? options.timezone : time.timezone, false);
            case 'Z':
                return $.timepicker.timezoneOffsetString(time.timezone === null ? options.timezone : time.timezone, true);
            case 'T':
                return ampmName.charAt(0).toUpperCase();
            case 'TT':
                return ampmName.toUpperCase();
            case 't':
                return ampmName.charAt(0).toLowerCase();
            case 'tt':
                return ampmName.toLowerCase();
            default:
                return match.replace(/'/g, "");
            }
        });
        return tmptime;
    };
})(jQuery);

顺便说一下,你可以扩展插件函数$ .datepicker.formatTim,以正确格式化“假”小时和分钟,这里用微秒和毫秒代替。

延长了插件:

{{1}}

享受。