如何从周号和年份中获取一周的第一个日期和最后一个日期
How to get first date and last date of the week from week number and year?
在JavaScript中,我只想按周数和年份获取周的第一个日期和最后一个日期。
例如,如果我的输入是:
2(week),2012
那么我的输出应该是:
2012-01-08 and 2012-01-14
试试这个:
var year = 2012;
var week = 2;
var d = new Date("Jan 01, " + year + " 01:00:00");
var w = d.getTime() + 604800000 * (week - 1);
var n1 = new Date(w);
var n2 = new Date(w + 518400000)
console.log(n1);
console.log(n2);
n1包含一周的第一天
n2包含一周中的最后一天
关于常量:
604800000是以毫秒为单位的一周
518400000是六天
对@bardiir的答案做了一点更改,如果一年中的第一天不是星期日(或星期一),则结果是不正确的。你应该减去第一天的数字。
更改代码
firstDay = new Date(2015, 0, 1).getDay();
console.log(firstDay);
var year = 2015;
var week = 67;
var d = new Date("Jan 01, " + year + " 01:00:00");
var w = d.getTime() - (3600000 * 24 * (firstDay - 1)) + 604800000 * (week - 1)
var n1 = new Date(w);
var n2 = new Date(w + 518400000)
console.log(n1.toString());
console.log(n2.toString());
如果您希望第一个是星期天,请将(firstDay-1)
更改为firstDay
您可以查看并尝试以下链接。
如何在JavaScript 中获取一周中的第一天和最后一天
这可能对你有帮助。
谢谢。
更改以前的答案并使其清楚@bardiir
// give the year and week
let year = 2021;
let week = 1;
// first date of year
let firstDateOfYear = new Date(year, 0, 1);
// get the day of first date in the year
let firstDayOfYear = firstDateOfYear.getDay();
console.log("first day of year", firstDayOfYear);
let timeofOneDay = 60 * 60 * 24 * 1000;
let timeofOneWeek = 60 * 60 * 24 * 7 * 1000;
// last day of the week, 6 days later
let timeof6Day = 60 * 60 * 24 * 6 * 1000;
// if week start from Monday
let timeOfFirstDay = firstDateOfYear.getTime() - (timeofOneDay * (firstDayOfYear - 1)) + timeofOneWeek * (week - 1);
let timeOfLastDay = timeOfFirstDay + timeof6Day;
console.log("week start from Monday");
console.log(new Date(timeOfFirstDay).toString());
console.log(new Date(timeOfLastDay).toString());
// if week from Sunday
timeOfFirstDay = firstDateOfYear.getTime() - (timeofOneDay * (firstDayOfYear - 0)) + timeofOneWeek * (week - 1);
timeOfLastDay = timeOfFirstDay + timeof6Day;
console.log("week start from Sunday");
console.log(new Date(timeOfFirstDay).toString());
console.log(new Date(timeOfLastDay).toString());
dt = new Date();
var firstDateOfWeek=(dt.setDate(dt.getDate()-dt.getDay()));
var lastDateOfWeek=(dt.setDate(dt.getDate()+6-dt.getDay()));
解决这个问题的强大方法是使用moment.js
let date=new Date();
let start_date = moment(date).startOf('date').toDate()
let end_date = moment(date).endOf('date').toDate()
相关文章:
- 给定特定日期(日/月/年)返回一周的开始 + 结束
- JS日期选择器能够:时间,日期,日期时间,星期几,一年中的一周,一年中的月份等
- 如何获取两个选定月份日期之间的一周的特定日期
- 使用 JavaScript 获取给定的日期年份、周数、一周内的日数
- 如何在 JavaScript 中将一周中的所有日期放入数组中
- 使用当前日期生成一周的所有日期,并在周一显示周开始日期,在周日显示周末
- 使用jQuery或JavaScript对一周、一个月和一年的日期进行排序
- Moment js没有在一周中的正确日期返回
- 如何从JavaScript中的日期编号中获取一周中的哪一天
- 如何从周号和年份中获取一周的第一个日期和最后一个日期
- 相对于这个日期的前一周
- 如何检查javascript日期是否从指定的一周以前
- 根据时刻js中的给定日期确定一周的第一天
- 获取一周中某一天的下一个日期
- 要显示数据的最后一周和任何两个日期之间的数据,我正在努力
- 如果我在JavaScript或jquery中有一个开始日期,我如何显示一周中所有日子的日期?
- 如何获得前一周的第一个和最后一个日期
- 如何获得一周的开始和结束给定的任意日期时间在周中使用JS
- 如何获取一周中存在于某个日期范围(Javascript)中的天数列表
- 考虑到一年从一周的中间开始,确定一周的开始和结束日期