Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确计算typescript日期的月差_Typescript_Date - Fatal编程技术网

如何正确计算typescript日期的月差

如何正确计算typescript日期的月差,typescript,date,Typescript,Date,首先:我正在研究Angular 7 假设我有一个数字X,例如我每月必须支付的费率。因此,在给定的两个日期上,我想计算一下我要为给定的时间跨度支付多少钱。也许是一个更为紧张的例子: 假设我的费率是10.00 我的startDate是2018-12-01而我的endDate是2018-12-31,我需要计算1*10.00=10.00。 在这样做时,我将假设我只查看“整月”,因此不能输入2018-12-13的结束日期,只需2018-12-31,2019-01-31或2019-02-28(或ofc.20

首先:我正在研究Angular 7

假设我有一个数字X,例如我每月必须支付的费率。因此,在给定的两个日期上,我想计算一下我要为给定的时间跨度支付多少钱。也许是一个更为紧张的例子:

假设我的费率是
10.00

我的
startDate
2018-12-01
而我的
endDate
2018-12-31
,我需要计算
1*10.00=10.00
。 在这样做时,我将假设我只查看“整月”,因此不能输入2018-12-13的
结束日期,只需
2018-12-31
2019-01-31
2019-02-28
(或ofc.
2019-02-29

我无法让它工作(遗憾的是),所以我环顾四周,陷入了这种方法:

  monthDiff(d1: Date, d2: Date): number {
    let months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth() + 1;
    months += d2.getMonth();
    return months <= 0 ? 0 : months;
  }
monthDiff(d1:日期,d2:日期):编号{
让我们几个月;
月份=(d2.getFullYear()-d1.getFullYear())*12;
月份-=d1.getMonth()+1;
月份+=d2.getMonth();

return months我强烈建议使用moment.js处理日期。 请参阅链接:

我认为它是当今处理日期最常用的js库。 看看它,你会发现它很容易使用

我希望这能有所帮助

谢谢大家!