我有不同的天数 例子(1 =星期一,2 =星期二.......) 并且我需要返回当前一周中这一天的日期
例如:如果我将数字3发送到我的函数,则在当前周的今天是星期天23,并且我需要我的函数给我本周的第3天的日期,在这种情况下,星期三是6月19日。 另一个例子,我将数字5传递给我的函数,该函数返回我本周(星期五)第5天的日期= 6月21日(2019/06/21)
类似的东西
let currentDate = new Date().toISOString().slice(0, 10)
答案 0 :(得分:1)
该策略相当简单:
new Date()
为您获取当前日期因此,您可以获取当前日期,减去当前日期,然后将所需的日期添加到日期中。这也将适用于之前和之后的几个月,例如
/* Given a week day number, return the date for that
* day in the current week.
*
* @param {number} dayNumber - number of day in week.
* If 0, returns Sunday at start of week
* If 7, returns Sunday at end of week
* Otherwise 1 Mon, 2 Tue, etc.
* If not an integer in range 0 to 7 returns undefined
* @returns {number|undefined} date of supplied day number
*/
function getDateForDayInWeek(dayNumber) {
dayNumber = Number(dayNumber);
// Validate input
if (dayNumber < 0 ||
dayNumber > 7 ||
parseInt(dayNumber) != dayNumber) {
return; // undefined
}
let d = new Date();
d.setDate(d.getDate() - d.getDay() + dayNumber);
return d.getDate();
}
// Examples
console.log('Today is ' +
new Date().toLocaleString(undefined, {
month:'long', weekday:'long', day:'numeric'
})
);
// Sample values
[0, // Sunday at start of week
3, // Wednesday
7, // Sunday end of week
23, -2, 2.4 // All invalid, return undefined
].forEach(
n => console.log(n + ':' + getDateForDayInWeek(n))
);
您可能希望该函数返回一个Date,然后您可以使用它做更多的事情,包括仅获取日期,还包括月份和日期名称等。