3

1 桁の月 (先行ゼロなし) の日付形式に、2 桁の日と 2 桁の年が続きます。

2013 年 1 月 1 日 = 10113

正しいフォーマットの日付ピッカーを添付しようとしていますが、正しくフォーマットされません。

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

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

日付ピッカーがポップアップすると、日付は 2003 年 10 月 11 日です。

4

1 に答える 1

3

残念ながら、あなたのフォーマットは機能しません。の実装をdatepicker formatDate見ると、1 桁または 2 桁の一致を試みることがわかります。mこれは、事前に 10 月ではなく 1 月を意味していると判断できないためです。

このメソッドは、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 開発者ツールを使用して行ったことです)。

于 2013-01-15T17:08:14.117 に答える