javascript获取前一周的第一天和最后一天

javascript get first and last day of the previous week

本文关键字:第一天 最后一天 一周 获取 javascript      更新时间:2023-09-26

我想用javascript获取前一周的第一天(星期一)和最后一天(星期日)。我已经检查了其他主题,但它不起作用。如果前一周是两个不同的月份,我也需要处理。

我使用这个代码,但最后一个星期日是2014年3月6日,而不是2014年4月6日

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));

您必须克隆beforeOneWeek。在你的代码中,其他一切看起来都很好

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));

以下是代码:

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();

请在此处查看有关日期函数的更多信息。