JavaScript 计算一年中的第几天 (1 - 366)

标签 javascript

我如何使用 JavaScript 计算一年中的第几天,从 1 到 366?

例如:

  • 1 月 3 日 应为 3
  • 2 月 1 日 应为 32

最佳答案

在 OP 的编辑之后:

var now = new Date();
var start = new Date(now.getFullYear(), 0, 0);
var diff = now - start;
var oneDay = 1000 * 60 * 60 * 24;
var day = Math.floor(diff / oneDay);
console.log('Day of year: ' + day);

编辑:上面的代码will failnow 是 3 月 26 日和 10 月 29 日之间的日期并且 now 的时间在凌晨 1 点之前(例如 00:59:59)。这是因为代码没有考虑夏令时。你应该compensate为此:

var now = new Date();
var start = new Date(now.getFullYear(), 0, 0);
var diff = (now - start) + ((start.getTimezoneOffset() - now.getTimezoneOffset()) * 60 * 1000);
var oneDay = 1000 * 60 * 60 * 24;
var day = Math.floor(diff / oneDay);
console.log('Day of year: ' + day);

关于JavaScript 计算一年中的第几天 (1 - 366),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619879/

相关文章:

javascript - 垂直堆叠的动态网格布局

javascript - jquery在javascript函数中隐藏div数组

javascript - 在 Canvas 上分层矩形会导致不透明度增加

javascript - Promise 如何被解决和待处理?

javascript - 添加监听器到 Zoomin OpenSeaDragon

javascript - JavaScript 的 Array.prototype.some/every 的 python 等价物是什么?

javascript - 在电话间隙中通过短信发送图像,可能吗?

javascript - 如何在 javascript 中将条件语句添加到 - tic - tac - toe game tie 函数?

javascript - 如何将列表的内部文本/内部内容设置为多维数组的内容?

javascript - 使用 Javascript 启用基于输入表单类型的复选框输入