相对于这个日期的前一周

Relative week to this date

本文关键字:一周 日期 相对于      更新时间:2023-09-26

当我收到日期。我想知道这个日期是在下周还是两周后还是这周。

我想找到一年的周数并计算

 getWeek(date)-getWeek(new Date())

使用这个函数

var getWeek = function(date) {
    var onejan = new Date(date.getFullYear(), 0, 1);
    return Math.ceil((((date - onejan) / 86400000) + onejan.getDay() + 1) / 7);
  };

。但我的问题是一月。如果我在12月查看1月的日期,就会产生问题。

他们是简单的方式在js中做到这一点?

您可以从查找每周星期日的日期值开始:

function getSunday(d) {
  var t = new Date(d);
  return new Date(t.setHours(0, 0, 0, 0) - (t.getDay() * 24 * 60 * 60 * 1000))
}

现在,如果你减去两个星期天,然后除以一周的毫秒数(7 * 24 * 60 * 60 * 1000),你会得到你的答案:

function getSunday(d) {
  var t = new Date(d);
  return new Date(t.setHours(0, 0, 0, 0) - (t.getDay() * 24 * 60 * 60 * 1000))
}
function getWeekOffset(d1, d2) {
  d1 = getSunday(d1);
  d2 = getSunday(d2);
  return (d2 - d1) / (7 * 24 * 60 * 60 * 1000);
}
alert(getWeekOffset(new Date('2015-12-26T03:24:00'), new Date('2016-01-04T07:00:00')));

你可能想看看JavaScript的日期对象
但是要注意,JavaScript使用客户机的系统时间。这意味着两台相邻的计算机可能会产生不同的结果。