【问题标题】:Get the last Thursday, but only if it's the second Thursday in this sequence获取最后一个星期四,但前提是它是此序列中的第二个星期四
【发布时间】:2012-08-09 19:09:44
【问题描述】:

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

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

【问题讨论】:

  • 从什么时候开始的两周周期?
  • 从上周四起,最多两周前

标签: php date datetime time strtotime


【解决方案1】:

使用周数。

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

这是一种方法:

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

【讨论】:

  • 绝对完美!谢谢!
猜你喜欢
  • 2021-08-31
  • 2014-02-23
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多