【问题标题】:jQuery Datepicker issue with one digit month no leading zerojQuery Datepicker 问题,一位数月份没有前导零
【发布时间】:2012-12-29 19:44:05
【问题描述】:

我的日期格式是一位数的月份(没有前导零),后跟两位数的日期和两位数的年份。

2013 年 1 月 1 日 = 10113

我正在尝试将具有正确格式的日期选择器附加到它,但它的格式不正确。

http://jsfiddle.net/S3KyX/1/

<input type="text" id="date" value="10113">
$("#date").datepicker({ dateFormat: 'mddy'});

当日期选择器弹出时,它的日期是 2003 年 10 月 11 日。

【问题讨论】:

    标签: jquery-ui datepicker date-format


    【解决方案1】:

    很遗憾,您的格式不起作用。如果您查看datepicker formatDate 的实现,您会看到m 将尝试匹配1 或2 位数字,因为它无法提前告诉您您的意思是1 月而不是10 月,

    这个方法是这样调用的,getNumber('m'):

    var getNumber = function(match) {
        var isDoubled = lookAhead(match);
        var size = (match == '@' ? 14 : (match == '!' ? 20 :
                (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
        var digits = new RegExp('^\\d{1,' + size + '}');
        var num = value.substring(iValue).match(digits);
        if (!num)
            throw 'Missing number at position ' + iValue;
        iValue += num[0].length;
        return parseInt(num[0], 10);
    };
    

    如您所见,“m”的大小为 2,因此它将匹配 2 位数字! 如有疑问,请在代码中设置断点,看看会发生什么(这就是我刚刚所做的,使用 chrome 开发人员工具)

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 2011-04-19
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      相关资源
      最近更新 更多