下个月第 y 周的碳日期 x 日,即第 4 个星期一

Carbon date x day of the y week in next month i.e. 4th monday

我想添加获取下个月第 y 周的第 x 天,即下个月的第 4 个星期一(或任意几个月后)。

我可以用

之类的东西生成我现在所在的位置
$day = $date->dayOfWeek;
$week = $date->weekOfMonth;

但我正在努力研究如何操纵 $date 到达我想去的地方。另一种方法是使用 PHP 的相对格式 http://php.net/manual/en/datetime.formats.relative.php 但如果可以的话,我宁愿坚持使用 Carbon。

另一种可能性是去一个月的第一天

$date->addMonth();
$date->day = 1;

然后循环查找正确的日期,然后添加周数,但这似乎有点麻烦。

试试这个代码

<?php
    echo date('F jS, Y', strtotime('next Monday 2012-04-01'));
?>

我最后做了:

$day = $date->dayOfWeek();
$week = $date->weekOfMonth();

$date->addMonth();
$date->day = 1;    //Move to first of the month

while($date->dayOfWeek != $day)
{
    $date->addDay();    //Cycle through days until we get to correct day of the week
}

$date->addWeeks($week - 1);