programming-examples/js/Date/Write a JavaScript function to get ISO-8601 week number of year, weeks starting on Monday..js

19 lines
569 B
JavaScript
Raw Normal View History

2019-11-15 12:59:38 +01:00
function ISO8601_week_no(dt)
{
var tdt = new Date(dt.valueOf());
var dayn = (dt.getDay() + 6) % 7;
tdt.setDate(tdt.getDate() - dayn + 3);
var firstThursday = tdt.valueOf();
tdt.setMonth(0, 1);
if (tdt.getDay() !== 4)
{
tdt.setMonth(0, 1 + ((4 - tdt.getDay()) + 7) % 7);
}
return 1 + Math.ceil((firstThursday - tdt) / 604800000);
}
dt = new Date();
console.log(ISO8601_week_no(dt));
dt = new Date(2015, 10, 1);
console.log(ISO8601_week_no(dt));