You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取当前日期所在季度的当日累计天数?(已实现季度判断)

计算当前日期所在季度的累计天数

嘿,这个需求其实很好实现,核心思路就是用当前日期减去本季度第一天的日期,把时间差转换成天数后再加1(毕竟当天也算一天嘛)。咱们一步步来搞定它:

首先明确几个关键步骤:

  • 拿到当前日期的年份和月份
  • 算出当前季度的第一天是哪一天
  • 计算两个日期的间隔天数,再加上当天的1天

直接上可复用的完整代码:

// 获取当前日期对象
const currentDate = new Date();
// 获取当前月份(注意JS里月份是0开始的,0=1月,11=12月)
const currentMonth = currentDate.getMonth();
// 计算当前季度的起始月份:Q1是0(1月),Q2是3(4月),Q3是6(7月),Q4是9(10月)
const quarterStartMonth = Math.floor(currentMonth / 3) * 3;
// 构造季度第一天的日期:年份用当前年,起始月份,日期设为1
const quarterStartDate = new Date(currentDate.getFullYear(), quarterStartMonth, 1);
// 计算两个日期的毫秒差,转换成天数
const dayDiff = Math.floor((currentDate - quarterStartDate) / (1000 * 60 * 60 * 24));
// 加1得到累计天数(因为dayDiff是从季度第一天到当前日期前一天的天数)
const accumulatedDays = dayDiff + 1;

console.log(accumulatedDays); // 比如2018年6月20日会输出81

验证一下你的例子

拿2018年6月20日来说,季度第一天是4月1日:

  • 4月剩余30天(从4月1日到4月30日是30天?不对,其实4月1日到6月20日的间隔天数是30(4月)+31(5月)+19(6月1日到19日)=80天,加1之后就是81天,完全符合你的预期。

而且不用担心闰年或者不同月份天数的问题——JS的Date对象会自动处理这些细节,比如2020年2月有29天,代码也能正确计算。

内容的提问来源于stack exchange,提问作者Philip S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:58:54