4

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

$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 日)

4

1 回答 1

4

使用周数。

你想要的是每周的星期四,其中有一个偶数

这是一种方法:

function getLastEvenWeekThursday()
{
    $lastThursday = strtotime('last thursday');
    $weeknumber = date("W", $lastThursday);
    if($weeknumber % 2 == 0)
        return $lastThursday;
    else
        return $lastThursday - 3600*24*7;
}
于 2012-08-09T19:26:11.643 回答