我正在寻找一种可靠的方法来返回当前一周指定工作日(例如"星期一")的完整日期。
由于今天是 2012 年 6 月 13 日星期三,我预计<?php echo date("Y-m-d", strtotime('Mon this week')); ?>
会产生2012-06-11
,但 php 返回2012-06-18
好像它将本周解释为下周的意思。 为什么会有这种行为,我应该怎么做?
谢谢。
--杰夫
date( 'Y-m-d', strtotime( 'last Monday', strtotime( 'Sunday' ) ) );
这将搜索下一个星期日之前的星期一。
根据文档 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 日。
我认为这是您问题的解决方案:
$monday_date = date("Y-m-d", mktime(0,0,0, date("m"), date("j")-(date("w")+1), date("Y")));