获取最后一个星期四,但仅限于此序列中的第二个星期四

时间:2012-08-09 19:09:44

标签: php date datetime time strtotime

我知道我可以通过这个

获得最后一个星期四
$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日)

1 个答案:

答案 0 :(得分:4)

使用周数。

你想要的是具有偶数的周的星期四。

这是一种方法:

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