//get start of week; QT function _getStartOfWeek (date){ var iDayOfWeek = date.getDay(); var iDifference = date.getDate() - iDayOfWeek + (iDayOfWeek === 0 ? -6:1); return new Date(date.setDate(iDifference)); }, function _getEndOfWeek(date){ return new Date(date.setDate(date.getDate() + (7 - date.getDay()) === 7 ? 0 : (7 - date.getDay()) )); },
* current date == 06/30/2016 and Monday - the first day of the week.
He also works for several months and years. Tested with qunit suite:

QUnit.module("Planung: Start of week"); QUnit.test("Should return start of week based on current date", function (assert) { var startOfWeek = Planung._getStartOfWeek(new Date()); assert.ok( startOfWeek , "returned date: "+ startOfWeek); }); QUnit.test("Should return start of week based on a sunday date", function (assert) { var startOfWeek = Planung._getStartOfWeek(new Date("2016-07-03")); assert.ok( startOfWeek , "returned date: "+ startOfWeek); }); QUnit.test("Should return start of week based on a monday date", function (assert) { var startOfWeek = Planung._getStartOfWeek(new Date("2016-06-27")); assert.ok( startOfWeek , "returned date: "+ startOfWeek); }); QUnit.module("Planung: End of week"); QUnit.test("Should return end of week based on current date", function (assert) { var endOfWeek = Planung._getEndOfWeek(new Date()); assert.ok( endOfWeek , "returned date: "+ endOfWeek); }); QUnit.test("Should return end of week based on sunday date with different month", function (assert) { var endOfWeek = Planung._getEndOfWeek(new Date("2016-07-03")); assert.ok( endOfWeek , "returned date: "+ endOfWeek); }); QUnit.test("Should return end of week based on monday date with different month", function (assert) { var endOfWeek = Planung._getEndOfWeek(new Date("2016-06-27")); assert.ok( endOfWeek , "returned date: "+ endOfWeek); }); QUnit.test("Should return end of week based on 01-06-2016 with different month", function (assert) { var endOfWeek = Planung._getEndOfWeek(new Date("2016-06-01")); assert.ok( endOfWeek , "returned date: "+ endOfWeek); }); QUnit.test("Should return end of week based on 21-06-2016 with different month", function (assert) { var endOfWeek = Planung._getEndOfWeek(new Date("2016-06-21")); assert.ok( endOfWeek , "returned date: "+ endOfWeek); }); QUnit.test("Should return end of week based on 28-12-2016 with different month and year", function (assert) { var endOfWeek = Planung._getEndOfWeek(new Date("2016-12-28")); assert.ok( endOfWeek , "returned date: "+ endOfWeek); }); QUnit.test("Should return end of week based on 01-01-2016 with different month and year", function (assert) { var endOfWeek = Planung._getEndOfWeek(new Date("2016-01-01")); assert.ok( endOfWeek , "returned date: "+ endOfWeek); });
iach Jun 30 '16 at 11:47 2016-06-30 11:47
source share