Php 如何获得每月倒数第二个星期一?

Php 如何获得每月倒数第二个星期一?,php,Php,我可以创建带有字符串参数的DateTime对象来获取日期,如下所示 $first = new \DateTime("first monday of july 2015"); $second = new \DateTime("last tuesday of july 2015"); $third = new \DateTime("first monday of january 2015"); 但是我怎样才能得到七月份倒数第二个星期一呢 七月份倒数第二个星期一总是在七月份最后一个星期一前7天,所以

我可以创建带有字符串参数的
DateTime
对象来获取日期,如下所示

$first = new \DateTime("first monday of july 2015");
$second = new \DateTime("last tuesday of july 2015");
$third = new \DateTime("first monday of january 2015");

但是我怎样才能得到七月份倒数第二个星期一呢

七月份倒数第二个星期一总是在七月份最后一个星期一前7天,所以你可以:

echo $test = date("Y-m-d",strtotime("last monday of july 2015"));
$last = new \DateTime("last monday of july 2015");
$penultimate = $last -7;
输出

2015-07-20

您可以通过DateInterval示例来实现

$last = new \DateTime("last monday of july 2015");
$penultimate = $last->sub(new \DateInterval('P7D'));

变量$Penutimate将是最后一个星期一减去7天,即7月的倒数第二个星期一

一个月的倒数第二个星期一是一个月的最后一个星期一之前的星期一。我想你应该使用:减去1周。@sprague44太简单了,今天不是我的日子:)我用一种微笑的方式解决这个问题,就像“$last=new\DateTime(”2015年7月的最后一个星期一);;$last->modify(“-1周”)“许多thanks@Uchiha-谢谢。更新了答案。你需要改写问题的标题,如“如何获得本月倒数第二个星期一?”
$last = new \DateTime("last monday of july 2015");
$penultimate = $last->sub(new \DateInterval('P7D'));