获取基于2个日期的每月星期数

时间:2019-01-30 05:34:51

标签: php

我有2个这样的日期2018-08-12,直到2018-12-31

我想根据给定的日期获得每个weeks的{​​{1}}的数量,

我想要的输出将是这样的:

month

是否可以使用2个日期来获取每个Array ( [18 Aug] => 3, [18 Sep] => 4, [18 Oct] => 4, [18 Nov] => 4, [18 Dec] => 4 ) 的{​​{1}}的数量?

这是我的尝试:

weeks

但是我的结果是这样的:

month

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则可以通过更复杂的循环来实现,从头到尾运行并构造先前的值

$start = strtotime('2018-08-12');
$end = strtotime('2018-12-31');
$cur = strtotime(date('Y-m-', $end) . date('d', $start));
if ($cur > $end) $cur = strtotime("+1 month", $cur);

$dates = array();
$save = 0;
while ($cur >= $start) {
    $temp = round(($end - $cur) / 604800);
    $dates[date('Y M', $cur)] =  $temp - $save;
    $save = $temp;
    $cur = strtotime("-1 month", $cur);
}
// Just if you want an ascending order of months
$dates = array_reverse($dates);

demo