Javascript 如何找到两个日期之间的周数或月数
我试图找出两个日期之间的周数或月数。我已经写了以下内容,但它不适用于我们有53周的情况。我找不到合适的方法来做这件事Javascript 如何找到两个日期之间的周数或月数,javascript,momentjs,Javascript,Momentjs,我试图找出两个日期之间的周数或月数。我已经写了以下内容,但它不适用于我们有53周的情况。我找不到合适的方法来做这件事 getNumOfWeeksOrMonths(fromDate:Moment, toDate:Moment, frequency:string){ let numberWeeksMonths; if(frequency === 'months'){ console.log("Returning months");
getNumOfWeeksOrMonths(fromDate:Moment, toDate:Moment, frequency:string){
let numberWeeksMonths;
if(frequency === 'months'){
console.log("Returning months");
numberWeeksMonths =moment(toDate).diff(moment(fromDate), 'months');
}
else{
console.log("Returning weeks");
numberWeeksMonths =moment(toDate).diff(moment(fromDate), 'weeks');
}
return numberWeeksMonths;
}
更新:
我可以得到如下几周的时间
let startDate = fromDate.toDate();
let endDate = toDate.toDate();
var week = 1000 * 60 * 60 * 24 * 7;
let weeksBetween = Math.ceil((endDate.getTime() - startDate.getTime())/ONE_WEEK)
这给了我2019年52周和2020年53周的时间。
然而,当我做一个日期范围,比如2020年10月19日到2020年11月30日,我得到的是7周而不是6周。你知道如何解决这个问题吗?我可以通过使用Math.floor来解决这个问题,并识别那些大于52的周,这些周被设置为53你的意思是开始日期而不是开始日期,结束日期而不是结束日期吗;?请检查下面的链接,我尝试了片刻,使用diff函数。但是,对于fromDate 01/01/2020和endDate 12/31/2020,返回52周,而不是53@SumanthItha-我与您显示的链接打成平局,但它没有返回正确答案。例如,2020年12月31日至2020年1月1日之间的周数返回5周。为什么2020年1月1日和2020年12月31日会返回某些内容除了52周?毕竟,一年有52周此外,请确保您以正确的格式为矩库传递日期,听起来您可能正在翻转DD和MM