From aee0e19edc343068969aa095c1000c75a0d302da Mon Sep 17 00:00:00 2001 From: Alexandr Nikitin Date: Sun, 29 Mar 2015 11:38:17 +0300 Subject: [PATCH] Revert "Revert "Fixes #56 (Bug in %U)"" This reverts commit ab3d4a052ea48363e5c1684f5aff9d90f3ce2a30. --- strftime.js | 6 ++++-- test.js | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/strftime.js b/strftime.js index 37635ab..c05c3f0 100644 --- a/strftime.js +++ b/strftime.js @@ -595,8 +595,10 @@ else weekday--; } - var firstDayOfYear = new Date(date.getFullYear(), 0, 1), - yday = (date - firstDayOfYear) / 86400000, + + var firstDayOfYearUtc = Date.UTC(date.getFullYear(), 0, 1), + dateUtc = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()), + yday = Math.floor((dateUtc - firstDayOfYearUtc) / 86400000), weekNum = (yday + 7 - weekday) / 7; return Math.floor(weekNum); diff --git a/test.js b/test.js index 0b0a974..5b6fd62 100755 --- a/test.js +++ b/test.js @@ -115,6 +115,9 @@ assert.format('%z', null, '+0000'); assert.format('%:z', null, '+00:00'); assert.format('%%', '%'); // any other char assert.format('%F %T', null, '1970-01-01 00:00:00', new Date(0)); +assert.format('%U', '13', "12", (new Date('03-26-2017 00:00:00'))); +assert.format('%U', '13', null, (new Date('03-27-2017 00:00:00'))); +assert.format('%U', '14', "13", (new Date('04-02-2017 00:00:00'))); ok('GMT');