]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Expand localized tokens in the parser. Fixes #665. 1011/head
authorIsaac Cambron <icambron@gmail.com>
Mon, 19 Aug 2013 08:19:42 +0000 (04:19 -0400)
committerIsaac Cambron <icambron@gmail.com>
Mon, 19 Aug 2013 08:19:42 +0000 (04:19 -0400)
moment.js
test/moment/create.js

index fe9df98a1b1c122176ae123ec6834069b21cd57f..082dd451c0f608ffc681c62f97970c32515ecea5 100644 (file)
--- a/moment.js
+++ b/moment.js
 
     // format date using native date object
     function formatMoment(m, format) {
+
+        format = expandFormat(format, m.lang());
+
+        if (!formatFunctions[format]) {
+            formatFunctions[format] = makeFormatFunction(format);
+        }
+
+        return formatFunctions[format](m);
+    }
+
+    function expandFormat(format, lang) {
         var i = 5;
 
         function replaceLongDateFormatTokens(input) {
-            return m.lang().longDateFormat(input) || input;
+            return lang.longDateFormat(input) || input;
         }
 
         while (i-- && (localFormattingTokens.lastIndex = 0,
             format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
         }
 
-        if (!formatFunctions[format]) {
-            formatFunctions[format] = makeFormatFunction(format);
-        }
-
-        return formatFunctions[format](m);
+        return format;
     }
 
 
     // date from string and format string
     function makeDateFromStringAndFormat(config) {
         // This array is used to make a Date, either with `new Date` or `Date.UTC`
-        var tokens = config._f.match(formattingTokens),
+        var lang = getLangDefinition(config._l),
             string = '' + config._i,
-            i, parsedInput;
+            i, parsedInput, tokens;
+
+        tokens = expandFormat(config._f, lang).match(formattingTokens);
 
         config._a = [];
 
index 0de518e2fe840e0862abb04b63d7adfc97e95aef..634b4514fc807d9f2ad77ea917294954c5995622 100644 (file)
@@ -195,7 +195,16 @@ exports.create = {
                 ['HH:mm:ss S',          '00:30:00 7'],
                 ['HH:mm:ss SS',         '00:30:00 78'],
                 ['HH:mm:ss SSS',        '00:30:00 789'],
-                ['X.SSS',               '1234567890.123']
+                ['X.SSS',               '1234567890.123'],
+                ['LT',                  '12:30 AM'],
+                ['L',                   '09/02/1999'],
+                ['l',                   '9/2/1999'],
+                ['LL',                  'September 2 1999'],
+                ['ll',                  'Sep 2 1999'],
+                ['LLL',                 'September 2 1999 12:30 AM'],
+                ['lll',                 'Sep 2 1999 12:30 AM'],
+                ['LLLL',                'Thursday, September 2 1999 12:30 AM'],
+                ['llll',                'Thu, Sep 2 1999 12:30 AM']
             ],
             i;