如何计算两个日期之间的月份,包括开始日期月份?

时间:2019-07-28 14:30:30

标签: php laravel

我正在为此应用直线折旧方法,我有两个日期开始日期2018-09-17(YYYY-MM-DD)结束日期2018-12-30。我需要在几个月内回答4而不是3,因为它给了我3。

我尝试了开始日期2018-09-01和结束日期2019-01-01。它给了我正确答案4我想要什么。

enter image description here

enter image description here

enter image description here

它给我答案4

$d1 = new DateTime("2018-09-01");
$d2 = new DateTime("2019-01-01");
echo $d1->diff($d2)->m . " Months";

这两个日期我需要答案4

2018-17-09至2018-30-12

有没有办法在几个月内(包括开始日期)获得答案4。从这些日期(2018-09-01)到(2019-01-01),我得到的答案4。简而言之,我想包括当前日期月份。

2 个答案:

答案 0 :(得分:1)

您可以使用subString[]

Carbon

Live demo here

答案 1 :(得分:1)

您可以轻松地使用format方法并将"n"传递给它,这将获得月份作为数字值,然后您可以定义逻辑。

一个例子:

$date1 = (new Datetime("2018-09-17"))->format("n"); 
$date2 = (new Datetime("2018-12-30"))->format("n"); 
echo $date2 - $date1 + 1;