【问题标题】:how to get a javascript date from a week number?如何从周数中获取 javascript 日期?
【发布时间】:2013-07-25 04:07:14
【问题描述】:

如何在 javascript(或 jquery)中从周数和年份获取一周的第一天的日期?

示例:2013 年第 30 周

提前致谢!

【问题讨论】:

标签: javascript jquery date


【解决方案1】:
var d = new Date(year, 0, 1);
var days = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];

d.setDate(d.getDate() + (week * 7));

console.log(days[d.getDay()]);

Try This

【讨论】:

  • @Ishan Jain,感谢您创建小提琴。由于我的声誉,我无权接受您的编辑。所以手动添加。
【解决方案2】:

使用 ISO 8601 周编号,您可以从一年中的第一周开始并添加 (n - 1) * 7 天以获取所需周的第一天。例如

function getDateByWeek(week, year) {

  // Create a date for 1 Jan in required year
  var d = new Date(year, 0);
  // Get day of week number, sun = 0, mon = 1, etc.
  var dayNum = d.getDay();
  // Get days to add
  var requiredDate = --week * 7;

  // For ISO week numbering
  // If 1 Jan is Friday to Sunday, go to next week 
  if (dayNum != 0 || dayNum > 4) {
    requiredDate += 7;
  }

  // Add required number of days
  d.setDate(1 - d.getDay() + ++requiredDate);
  return d;
}

// Week 44 of 2021 starts on Mon 1 Nov 2021
console.log(getDateByWeek(44,2021).toString());

如果需要其他一些周编号方案,只需相应地调整开始日期即可。

【讨论】:

  • 第一行应该是 'var d = new Date(year, 0, 1)' 并且有效
猜你喜欢
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多