如何在php中获取上周(星期二或任何其他日期)的日期?
我认为这是可能的,但我无法为它提出正确的算法。
我想做的是:
如果今天是2009年2月2日星期一,我怎么知道上周星期二的日期?使用相同的代码2天后,我会找到上周星期二的同一日期,当前日期是星期三,2009年2月4日。
我认为这是可能的,但我无法为它提出正确的算法。
我想做的是:
如果今天是2009年2月2日星期一,我怎么知道上周星期二的日期?使用相同的代码2天后,我会找到上周星期二的同一日期,当前日期是星期三,2009年2月4日。
这些答案中的大多数要么太多,要么在技术上是不正确的,因为“上周二”并不一定意味着上周的周二,它只是意味着前一个星期二,这可能是在“现在”的同一周内。
正确答案是:
strtotime('tuesday last week')
我知道已经有一个公认的答案,但恕我直言,它不符合要求的第二个要求。在上述情况下,如果在星期三使用strtotime,则将在昨天产生。因此,确切地说,您仍然需要检查以下内容:
$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;
正如达维尔在他的评论中指出的那样,这是我的一个快速镜头。由于夏令时,上述计算将每年关闭一次。足够好的解决方案是:
$tuesday = date('W', $tuesday)==date('W') ? $tuesday-7*86400+7200 : $tuesday;
如果你需要0:00h的时间,你当然需要一些额外的努力。