]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Adding support for formatting milliseconds
authorTim Wood <washwithcare@gmail.com>
Fri, 23 Mar 2012 19:08:41 +0000 (12:08 -0700)
committerTim Wood <washwithcare@gmail.com>
Fri, 23 Mar 2012 19:08:41 +0000 (12:08 -0700)
#214

moment.js
test/moment/format.js

index 3f0d671c9738544b9bd19c6d965c94a3049de4e6..5f0d6767add7b375b6d99ab55c0e44bdb3029c58 100644 (file)
--- a/moment.js
+++ b/moment.js
@@ -13,7 +13,7 @@
         paramsToParse = 'months|monthsShort|monthsParse|weekdays|weekdaysShort|longDateFormat|calendar|relativeTime|ordinal|meridiem'.split('|'),
         i,
         jsonRegex = /^\/?Date\((\-?\d+)/i,
-        charactersToReplace = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|dddd?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|zz?|ZZ?|LT|LL?L?L?)/g,
+        charactersToReplace = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|dddd?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|SS?S?|zz?|ZZ?|LT|LL?L?L?)/g,
         nonuppercaseLetters = /[^A-Z]/g,
         timezoneRegex = /\([A-Za-z ]+\)|:[0-9]{2} [A-Z]{3} /g,
         tokenCharacters = /(\\)?(MM?M?M?|dd?d?d|DD?D?D?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|ZZ?|T)/g,
@@ -99,6 +99,7 @@
             currentMinutes = m.minutes(),
             currentSeconds = m.seconds(),
             currentZone = -m.zone(),
+            currentMilliseconds = m.milliseconds(),
             ordinal = moment.ordinal,
             meridiem = moment.meridiem;
         // check if the character is a format
                 return currentSeconds;
             case 'ss' :
                 return leftZeroFill(currentSeconds, 2);
+            case 'S' :
+                return ~~ (currentMilliseconds / 100);
+            case 'SS' :
+                return leftZeroFill(~~(currentMilliseconds / 10), 2);
+            case 'SSS' :
+                return leftZeroFill(currentMilliseconds, 3);
             // TIMEZONE
             case 'zz' :
                 // depreciating 'zz' fall through to 'z'
index 3596267131859802f24a3d86164692cb403cac65..744d2197b91fc00ff22d676cf1b84da03cbf2626 100644 (file)
@@ -21,6 +21,19 @@ exports.format = {
         test.done();
     },
 
+    "format milliseconds" : function(test) {
+        test.expect(6);
+        var b = moment(new Date(2009, 1, 14, 15, 25, 50, 123));
+        test.equal(b.format('S'), '1', 'Deciseconds');
+        test.equal(b.format('SS'), '12', 'Centiseconds');
+        test.equal(b.format('SSS'), '123', 'Milliseconds');
+        b.milliseconds(789);
+        test.equal(b.format('S'), '7', 'Deciseconds');
+        test.equal(b.format('SS'), '78', 'Centiseconds');
+        test.equal(b.format('SSS'), '789', 'Milliseconds');
+        test.done();
+    },
+
     "format timezone" : function(test) {
         test.expect(4);