Skip to content

日期相关

获取日期是当月的第几周

在 JavaScript 中,可以通过编写一个函数来计算某个特定日期是该月的第几周。下面是一个示例代码:

javascript
function getWeekOfMonth(dateString) {
  // 将日期字符串转换为 Date 对象
  const date = new Date(dateString)
  // 获取该日期所在月份的第一天
  const startOfMonth = new Date(date.getFullYear(), date.getMonth(), 1)
  // 获取该月份第一天是星期几
  const startDayOfWeek = startOfMonth.getDay()
  // 获取该日期是该月的第几天
  const dayOfMonth = date.getDate()

  // 计算该日期是该月的第几周
  const weekNumber = Math.ceil((dayOfMonth + startDayOfWeek) / 7)

  return weekNumber
}

// 使用示例
const date = '2019-11-24'
console.log(`日期 ${date} 是当月的第 ${getWeekOfMonth(date)} 周。`)

代码解释:

  1. new Date(dateString):将日期字符串转换为 Date 对象。
  2. new Date(date.getFullYear(), date.getMonth(), 1):获取该日期所在月份的第一天。
  3. startOfMonth.getDay():获取该月第一天是星期几(0 表示星期日,1 表示星期一,以此类推)。
  4. date.getDate():获取该日期是该月的第几天。
  5. Math.ceil((dayOfMonth + startDayOfWeek) / 7):计算该日期是该月的第几周。

运行结果:

对于输入日期 "2019-11-24",运行结果会显示该日期是当月的第 4 周:

日期 2019-11-24 是当月的第 4 周。

这个代码可以根据输入的任意日期,返回该日期是所在月份的第几周。

获取日期是当月的上旬、中旬、下旬?

要判断某个日期在当月的上旬、中旬还是下旬,可以根据日期是该月的第几天来进行分类:

  • 上旬:1 日到 10 日
  • 中旬:11 日到 20 日
  • 下旬:21 日到月底

下面是一个示例代码,基于日期来判断该日期属于哪个时间段:

javascript
function getPeriodOfMonth(dateString) {
  // 将日期字符串转换为 Date 对象
  const date = new Date(dateString)
  // 获取该日期是当月的第几天
  const dayOfMonth = date.getDate()

  // 判断日期所属的时间段
  if (dayOfMonth >= 1 && dayOfMonth <= 10) {
    return '上旬'
  } else if (dayOfMonth >= 11 && dayOfMonth <= 20) {
    return '中旬'
  } else {
    return '下旬'
  }
}

// 使用示例
const date = '2024-08-12'
console.log(`日期 ${date} 是当月的${getPeriodOfMonth(date)}。`)

代码解释:

  1. new Date(dateString):将日期字符串转换为 Date 对象。
  2. date.getDate():获取该日期是该月的第几天。
  3. 通过 if 判断日期属于上旬、中旬还是下旬。

运行结果:

对于输入日期 "2024-08-12",运行结果会显示该日期是当月的中旬:

日期 2024-08-12 是当月的中旬。

这个代码可以根据输入的任意日期,返回该日期是所在月份的上旬、中旬或下旬。

要根据日期判断它是当年的第几季度,可以通过月份来确定。每个季度的划分如下:

  • 第一季度 (Q1):1 月、2 月、3 月
  • 第二季度 (Q2):4 月、5 月、6 月
  • 第三季度 (Q3):7 月、8 月、9 月
  • 第四季度 (Q4):10 月、11 月、12 月

根据月份来计算该日期所属的季度,代码实现如下:

javascript
function getQuarterOfYear(dateString) {
  // 将日期字符串转换为 Date 对象
  const date = new Date(dateString)
  // 获取该日期的月份(0 表示一月,所以需要 +1)
  const month = date.getMonth() + 1

  // 判断月份所属的季度
  if (month >= 1 && month <= 3) {
    return '第一季度'
  } else if (month >= 4 && month <= 6) {
    return '第二季度'
  } else if (month >= 7 && month <= 9) {
    return '第三季度'
  } else {
    return '第四季度'
  }
}

// 使用示例
const date = '2024-08-12'
console.log(`日期 ${date} 是当年的${getQuarterOfYear(date)}。`)

代码解释:

  1. new Date(dateString):将日期字符串转换为 Date 对象。
  2. date.getMonth() + 1:获取日期对应的月份(月份从 0 开始计数,所以需要加 1)。
  3. 通过 if 判断月份所属的季度。

运行结果:

对于输入日期 "2024-08-12",运行结果会显示该日期是当年的第三季度:

日期 2024-08-12 是当年的第三季度。

这个代码可以根据输入的任意日期,返回该日期是当年的第几季度。

获取日期是当年第几季度?

要根据日期判断它是当年的第几季度,可以通过月份来确定。每个季度的划分如下:

  • 第一季度 (Q1):1 月、2 月、3 月
  • 第二季度 (Q2):4 月、5 月、6 月
  • 第三季度 (Q3):7 月、8 月、9 月
  • 第四季度 (Q4):10 月、11 月、12 月

根据月份来计算该日期所属的季度,代码实现如下:

javascript
function getQuarterOfYear(dateString) {
  // 将日期字符串转换为 Date 对象
  const date = new Date(dateString)
  // 获取该日期的月份(0 表示一月,所以需要 +1)
  const month = date.getMonth() + 1

  // 判断月份所属的季度
  if (month >= 1 && month <= 3) {
    return '第一季度'
  } else if (month >= 4 && month <= 6) {
    return '第二季度'
  } else if (month >= 7 && month <= 9) {
    return '第三季度'
  } else {
    return '第四季度'
  }
}

// 使用示例
const date = '2024-08-12'
console.log(`日期 ${date} 是当年的${getQuarterOfYear(date)}。`)

代码解释:

  1. new Date(dateString):将日期字符串转换为 Date 对象。
  2. date.getMonth() + 1:获取日期对应的月份(月份从 0 开始计数,所以需要加 1)。
  3. 通过 if 判断月份所属的季度。

运行结果:

对于输入日期 "2024-08-12",运行结果会显示该日期是当年的第三季度:

日期 2024-08-12 是当年的第三季度。

这个代码可以根据输入的任意日期,返回该日期是当年的第几季度。