]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Fix IE8 bug
authorIskren Chernev <iskren.chernev@gmail.com>
Fri, 27 Dec 2013 19:12:16 +0000 (20:12 +0100)
committerIskren Chernev <iskren.chernev@gmail.com>
Sat, 28 Dec 2013 20:57:07 +0000 (12:57 -0800)
moment.js
test/moment/is_valid.js

index f62ca4baac79d5b98f52209f06b32e1e7a766e7c..5292c5ad42ec7d35518709a17d65fc1fa623a200 100644 (file)
--- a/moment.js
+++ b/moment.js
@@ -71,7 +71,7 @@
             ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/],
             ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/],
             ['GGGG-[W]WW', /\d{4}-W\d{2}/],
-            ['YYYY-DDD', /\d{4}-\d{3}/],
+            ['YYYY-DDD', /\d{4}-\d{3}/]
         ],
 
         // iso time formats and regexes
     // left zero fill a number
     // see http://jsperf.com/left-zero-filling for performance comparison
     function leftZeroFill(number, targetLength, forceSign) {
-        var output = Math.abs(number) + '',
+        var output = '' + Math.abs(number),
             sign = number >= 0;
 
         while (output.length < targetLength) {
 
     //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
     function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
-        // The only solid way to create an iso date from year is to use
-        // a string format (Date.UTC handles only years > 1900). Don't ask why
-        // it doesn't need Z at the end.
-        var d = new Date(leftZeroFill(year, 6, true) + '-01-01').getUTCDay(),
-            daysToAdd, dayOfYear;
+        var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear;
 
         weekday = weekday != null ? weekday : firstDayOfWeek;
         daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0);
index f805e59eb29c3b188e57da9c78a75fdeed4d018c..728a2b949c7f522e0edaeff1959c373f6f86c015 100644 (file)
@@ -259,5 +259,5 @@ exports.is_valid = {
         test.ok(moment("3:25", ["h:mma", "hh:mma", "H:mm", "HH:mm"]).isValid());
 
         test.done();
-    },
+    }
 };