我认为这是可能的,但我无法提出正确的算法。

我想做的是:

如果今天是2009年2月2日,我怎么知道上周的星期二?使用两天后的相同代码,我会找到上周二的同一日期,而当前日期是2009年2月4日,星期三。

最佳答案

我知道已经有一个可以接受的答案,但是恕我直言,它不满足所要求的第二个要求。在上述情况下,如果在星期三使用,strtotime将在昨天产生 yield 。因此,准确地说,您仍然需要检查以下内容:

$tuesday = strtotime('last Tuesday');
// check if we need to go back in time one more week
$tuesday = date('W', $tuesday)==date('W') ? $tuesday-7*86400 : $tuesday;

正如davil在他的评论中指出的那样,这是我的快速镜头。由于夏令时,上述计算每年将关闭一次。足够好的解决方案是:
$tuesday = date('W', $tuesday)==date('W') ? $tuesday-7*86400+7200 : $tuesday;

如果您需要将时间设为0:00h,那么您当然需要付出额外的努力。

关于php - 如何获取上星期的日期(星期二或其他任何一天)在php中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/502535/

10-10 12:52