【发布时间】:2019-12-04 16:27:05
【问题描述】:
我在下面有以下代码,旨在提供两件事。距下一个业务季度的天数和下一个业务季度的日期。这适用于第三季度,但由于它开始显示第四季度,结果就关闭了。
您会看到日期显示下个月的开始。这是有意的。它是下一季度的起点。
有人看到我做错了吗?
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;
dayDiffRound = Math.floor(dayDiff);
$('#nextDrawingCount').text(dayDiffRound);
var drawingDate = nextQ.toLocaleString('en-us', { weekday: 'long' }) + ", " + nextQ.toLocaleString('default', { month: 'long' }) + " " + ("0" + nextQ.getDate()).slice(-2) + ", " + nextQ.getFullYear();
$('#nextDrawing').text(drawingDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="dGw">The next drawing is <span id="nextDrawingCount"></span> days from now (<span id="nextDrawing"></span>).</p>
【问题讨论】:
-
nextQ = new Date (today.getFullYear() + 1, 1, 1)应该将月份设置为 0(一月),而不是 1(二月)。 -
@RobG 对。我怎么能这样做呢?
-
nextQ = new Date (today.getFullYear() + 1, 0, 1) -
@RobG 谢谢!那行得通。随时留下答案。您能解释一下如何将月份设置为 0 吗?我在一个堆栈问题上找到了大部分代码,不知道 nextQ 是如何得出下一个季度的实际情况的。
标签: javascript jquery date datetime