Javascript 如何找到两个日期之间的周数或月数

Javascript 如何找到两个日期之间的周数或月数,javascript,momentjs,Javascript,Momentjs,我试图找出两个日期之间的周数或月数。我已经写了以下内容,但它不适用于我们有53周的情况。我找不到合适的方法来做这件事 getNumOfWeeksOrMonths(fromDate:Moment, toDate:Moment, frequency:string){ let numberWeeksMonths; if(frequency === 'months'){ console.log("Returning months");

我试图找出两个日期之间的周数或月数。我已经写了以下内容,但它不适用于我们有53周的情况。我找不到合适的方法来做这件事

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