javascript - 使用 javascript 获取当前季度

标签 javascript jquery math date datetime

如何使用 javascript 获取当前季度?我正在尝试检测我们目前处于哪个季度,例如2.

编辑我如何计算该季度剩余的天数?

最佳答案

假设一月到三月被视为第一季度(某些国家/公司将其财政年度与日历年分开),以下代码应该有效:

var today = new Date();
var quarter = Math.floor((today.getMonth() + 3) / 3);

这给你:

Month      getMonth()  quarter
---------  ----------  -------
January         0         1
February        1         1
March           2         1
April           3         2
May             4         2
June            5         2
July            6         3
August          7         3
September       8         3
October         9         4
November       10         4
December       11         4

至于如何获取季度剩余天数,基本上就是算出下季度的第一天,然后算出差额,比如:

var today = new Date();
var quarter = Math.floor((today.getMonth() + 3) / 3);
var nextq;
if (quarter == 4) {
    nextq = new Date (today.getFullYear() + 1, 1, 1);
} else {
    nextq = new Date (today.getFullYear(), quarter * 3, 1);
}
var millis1 = today.getTime();
var millis2 = nextq.getTime();
var daydiff = (millis2 - millis1) / 1000 / 60 / 60 / 24;

这尚未经过测试,但理论是合理的。基本上创建一个对应于下一个季度的日期,将其和今天转换为自纪元开始以来的毫秒数,然后差值就是毫秒数。

将其除以一天中的毫秒数,即可得出天数差异。

这给出了(至少大致)该季度剩余的天数。您可能需要对其进行微调,以确保所有时间都设置为相同的值 (00:00:00),以便差异精确到天数。

它也可能会减少一位,具体取决于您对“季度剩余天数”的实际定义。

但这应该是一个很好的起点。

关于javascript - 使用 javascript 获取当前季度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11981453/

相关文章:

javascript - 使用 jQuery 计算两个特定行之间的表行数

java - 数学的堆栈行为

math - float 学有问题吗?

PHP算法求解1级线性方程组

javascript - 在嵌入组件中响应 onClick 事件调用序列

javascript - 保存 $location 参数状态 AngularJS

javascript - 现在 javascript 匿名函数中的 `return function()` 是怎么回事? (最佳实践)

javascript - jQuery 数据抽屉触发 onclick

JavaScript 不会对数字求和

javascript - 删除对象的一个​​属性