Week of year
JavaScript, Date · Aug 15, 2021

Returns the zero-indexed week of the year that a date corresponds to.
- Use the
Date
constructor andDate.prototype.getFullYear()
to get the first day of the year as aDate
object. - Use
Date.prototype.setDate()
,Date.prototype.getDate()
andDate.prototype.getDay()
along with the modulo (%
) operator to get the first Monday of the year. - Subtract the first Monday of the year from the given
date
and divide with the number of milliseconds in a week. - Use
Math.round()
to get the zero-indexed week of the year corresponding to the givendate
. -0
is returned if the givendate
is before the first Monday of the year.
const weekOfYear = date => { const startOfYear = new Date(date.getFullYear(), 0, 1); startOfYear.setDate(startOfYear.getDate() + (startOfYear.getDay() % 7)); return Math.round((date - startOfYear) / (7 * 24 * 3600 * 1000)); }; weekOfYear(new Date('2021-06-18')); // 23