使用strtotime()在php中计算相对日期

时间:2012-06-13 19:56:22

标签: php strtotime

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

由于今天是2012年6月13日星期三,我预计<?php echo date("Y-m-d", strtotime('Mon this week')); ?>会产生2012-06-11,但PHP会返回2012-06-18,就像它本周解释一样意思是下周。为什么会出现这种行为?我应该做些什么?

感谢。

- 杰夫

3 个答案:

答案 0 :(得分:5)

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

这将搜索下一个星期日的星期一。

答案 1 :(得分:2)

根据文件php relative date formats

然后Monday this week将首先前进到next Monday,然后处理this week的相对文字。

dayname :移动到此名称的第二天,除非它是当天,否则它将无法前进。换句话说,如果当前日期是6月11日,那么strtotime('Monday this week')将返回6月11日,而如果当前日期是6月13日,那么strtotime('Monday this week')将返回6月19日。

答案 2 :(得分:0)

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

$monday_date = date("Y-m-d", mktime(0,0,0, date("m"), date("j")-(date("w")+1), date("Y")));