如何使用javascript获取特定日期的日期?

时间:2019-06-23 20:09:53

标签: javascript date

我有不同的天数 例子(1 =星期一,2 =星期二.......) 并且我需要返回当前一周中这一天的日期

例如:如果我将数字3发送到我的函数,则在当前周的今天是星期天23,并且我需要我的函数给我本周的第3天的日期,在这种情况下,星期三是6月19日。 另一个例子,我将数字5传递给我的函数,该函数返回我本周(星期五)第5天的日期= 6月21日(2019/06/21)

类似的东西

let currentDate = new Date().toISOString().slice(0, 10)

1 个答案:

答案 0 :(得分:1)

该策略相当简单:

  1. new Date()为您获取当前日期
  2. getDay 方法返回日期是星期几的天数
  3. getDate 方法返回当月日期的天数
  4. setDate 方法设置日期为当月日期的天数

因此,您可以获取当前日期,减去当前日期,然后将所需的日期添加到日期中。这也将适用于之前和之后的几个月,例如

/* 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,然后您可以使用它做更多的事情,包括仅获取日期,还包括月份和日期名称等。