如何使用javascript获取最近的十年/世纪/千年

时间:2018-07-09 21:14:56

标签: javascript date

我试图找到一种获取日期的两个最接近范围的方法,可能是十年,世纪,千年

示例

var date = new Date() // Mon Jul 09 2018 17:12:17 GMT-0400
date.getDecadeRange() // [Jan 01 2010 , Dec 31 , 2019]

以此类推。

2 个答案:

答案 0 :(得分:2)

要舍入到最接近的倍数,我们可以使用小工具:

 const round = (n, to) => n - n % to;

现在我们只需要四舍五入,并把第一天作为一天:

const round = (n, to) => n - n % to;

const now = new Date();

const start = new Date(round(now.getFullYear(), 100), 0, 1);
// Go to the start of the next period ...
const end = new Date(round(now.getFullYear(), 100) + 100, 0, 1);
end.setDate(end.getDate() - 1); // then go one day back

console.log(`${start}\n${end}`);

答案 1 :(得分:0)

感谢所有回答的人。 读了乔纳斯的答案,我有一个瞬间,它就出现了答案

const dateRanges = (date, rule, sum = 0) 
      => Math.floor(date.getFullYear() / rule) * rule + sum

我可以用这种方式执行

const lowerDecade  = dateRanges(new Date() , 10 /** => decade**/)
const upperDecade  = dateRanges(new Date() , 10 /** => decade**/, 9)