6

我正在寻找一种可靠的方法来返回当前一周指定工作日(例如“星期一”)的完整日期。

由于今天是 2012 年 6 月 13 日星期三,我预计<?php echo date("Y-m-d", strtotime('Mon this week')); ?>会导致2012-06-11,但 php 返回2012-06-18时好像将本周解释为下周含义。为什么会出现这种行为,我应该怎么做?

谢谢。

——杰夫

4

3 回答 3

6

date( 'Y-m-d', strtotime( 'last Monday', strtotime( 'Sunday' ) ) );

这将搜索下周日之前的周一。

于 2012-06-13T20:02:46.607 回答
3

根据文档php 相对日期格式

然后Monday this week会先前进到next Monday再处理 的相关文本this week

dayname:移动到该名称的下一天,除非它是当天,否则它不会前进。换句话说,如果当前日期是 6 月 11 日,则strtotime('Monday this week')返回 6 月 11 日,而如果当前日期是 6 月 13 日,则strtotime('Monday this week')返回 6 月 19 日。

于 2012-06-13T20:34:32.583 回答
0

我认为这是您问题的解决方案:

$monday_date = date("Y-m-d", mktime(0,0,0, date("m"), date("j")-(date("w")+1), date("Y")));
于 2012-06-13T20:02:36.920 回答