到这个日期的相对周

时间:2015-10-09 06:56:11

标签: javascript

我收到约会的时候。 我想知道这个日期是在下周还是在2周或本周。

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

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

。但我的问题是1月份。如果我在十二月的日期看一月的日期会引起问题。

他们在js中执行此操作的方法很简单吗?

2 个答案:

答案 0 :(得分:0)

您可能需要查看JavaScript Date Object
但请注意,JavaScript使用客户端的系统时间。这意味着,两台彼此相邻的计算机可能会产生不同的结果。

答案 1 :(得分:0)

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

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