我知道我可以用这个得到最后一个星期四

$firstdate = strtotime('last thursday');

但是,在发布此问题时,它将返回
August 2nd, 2012

我需要的是接下来两周的最后一个星期四:
8月9日
8月23日
9月6日
9月20日
之后的每一个星期四。
所以如果当前日期是8月10日,那么它将在8月9日返回
如果当前日期是8月21日,它也将返回8月9日(即使前一个星期四是8月16日)
如果当前日期是8月24日,则返回8月23日
如果当前日期是9月1日,它也将返回8月23日(即使前一个星期四是8月30日)

最佳答案

使用周数。
你想要的是一周中有偶数的星期四。
有一种方法:

function getLastEvenWeekThursday()
{
    $lastThursday = strtotime('last thursday');
    $weeknumber = date("W", $lastThursday);
    if($weeknumber % 2 == 0)
        return $lastThursday;
    else
        return $lastThursday - 3600*24*7;
}

10-07 22:41