Date.prototype.getUTCWeek = function()

in src/retention.js [2:12]


Date.prototype.getUTCWeek = function() {
  var date = new Date(this.getTime());
  date.setUTCHours(0, 0, 0, 0);
  // Thursday in current week decides the year.
  date.setUTCDate(date.getUTCDate() + 3 - (date.getUTCDay() + 6) % 7);
  // January 4 is always in week 1.
  var week1 = new Date(date.getUTCFullYear(), 0, 4);
  // Adjust to Thursday in week 1 and count number of weeks from date to week1.
  return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000
                        - 3 + (week1.getUTCDay() + 6) % 7) / 7);
};