我如何使用 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 fail当 now
是 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/