当前位置: 首页 > 面试题库 >

Javascript计算一年中的哪一天(1-366)

冯枫
2023-03-14
问题内容

如何使用javascript从1-366计算一年中的某一天?例如:

  • 1月3日 应该是 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);

编辑:上面的代码会失败时,now是3月26日和10月29日之间的日期now的时间是凌晨1点之前(如零时59分59秒)。这是因为该代码未考虑夏令时。

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);


 类似资料:
  • 我想计算两个日期之间的时间跨度(注意:输入格式为dd.MM.yyyy,请参见下面的代码)。特别的是,我们不想每个月用30天,一年用360天。我更希望在“人类模式”上有所不同(不知道如何称呼它)。 比方说,我想计算从2014年10月1日到2015年3月17日的差异(包括最后一天)。从10月到2月是5个月。然后剩下的是18天(从第1天到17天,包括第17天)。所以结果应该是: 0年5个月18天 当然,

  • 问题内容: 如果您提供的在你上一个月的最后一天: 在mozilla上有对此行为的引用。这是可靠的跨浏览器功能还是我应该考虑替代方法? 问题答案: var month = 0; // January var d = new Date(2008, month + 1, 0); alert(d); // last day in January 输出差异是由于实现方式的差异,而不是日期不同。 当然,仅因为

  • 问题内容: 我在计算本月下一个最后一天何时发送预定的通知时遇到问题。 这是我的代码: 这是导致问题的线,我相信: 如何使用日历正确设置下个月的通知的最后一天? 问题答案: 这将返回当前月份的实际最大值。例如,现在是leap年的2月,因此它返回29作为。

  • 问题内容: 计算上一季度最后一天的最有效方法是什么? 示例:给定日期11/19/2008,我想返回9/30/2008。 平台是SQL Server 问题答案: 如果@Date有日期问题 编辑:感谢下面的@strEagle,更简单的是:

  • 代码(由于测试很小,我包含了一个完整的工作程序):