6

I want to get the first (monday) and the last (sunday) day of the previous week in javascript. I already checked other topics, but it doesn't work. I also need to handle if the previous week is on 2 differents months.

I'm using this code, but the lastsunday is 06/03/2014 instead of 06/04/2014

var beforeOneWeek = new Date(new Date().getTime() - 60 * 60 * 24 * 7 * 1000)
  , day = beforeOneWeek.getDay()
  , diffToMonday = beforeOneWeek.getDate() - day + (day === 0 ? -6 : 1)
  , lastMonday = new Date(beforeOneWeek.setDate(diffToMonday))
  , lastSunday = new Date(beforeOneWeek.setDate(diffToMonday + 6));

$( "#dateDebut" ).val($.datepicker.formatDate('dd/mm/yy', lastMonday));
$( "#dateFin" ).val($.datepicker.formatDate('dd/mm/yy', lastSunday));
user2733521
  • 429
  • 5
  • 22

2 Answers2

6

You have to clone beforeOneWeek. Everything else looks fin in your code

var beforeOneWeek = new Date(new Date().getTime() - 60 * 60 * 24 * 7 * 1000)
var beforeOneWeek2 = new Date(beforeOneWeek);
  day = beforeOneWeek.getDay()
  diffToMonday = beforeOneWeek.getDate() - day + (day === 0 ? -6 : 1)
  lastMonday = new Date(beforeOneWeek.setDate(diffToMonday))
  lastSunday = new Date(beforeOneWeek2.setDate(diffToMonday + 6));

$( "#dateDebut" ).val($.datepicker.formatDate('dd/mm/yy', lastMonday));
$( "#dateFin" ).val($.datepicker.formatDate('dd/mm/yy', lastSunday));
drkunibar
  • 1,302
  • 1
  • 7
  • 7
0

Here is the code:

var _now = new Date();

// get sunday by subtraction current week day from month day
var sunday = new Date(_now.setDate(_now.getDate() - _now.getDay()));
// get monday by subtraction 6 days from sunday
var monday = new Date(_now.setDate(_now.getDate() - 6));
var isDifferentMonth = sunday.getMonth() !== monday.getMonth();

See more about Date functions here.

Kiril
  • 2,865
  • 1
  • 36
  • 41