使用strotime()在php中计算相对日期
我正在寻找一种可靠的方法来返回当前周指定工作日(例如“周一”)的完整日期 由于今天是2012年6月13日,星期三,我预计使用strotime()在php中计算相对日期,php,strtotime,Php,Strtotime,我正在寻找一种可靠的方法来返回当前周指定工作日(例如“周一”)的完整日期 由于今天是2012年6月13日,星期三,我预计会产生2012-06-11,但是php返回2012-06-18,好像它将本周解读为下周。为什么会有这种行为?我应该怎么做 谢谢 --杰夫我认为这是解决你问题的办法: $monday_date = date("Y-m-d", mktime(0,0,0, date("m"), date("j")-(date("w")+1), date("Y"))); date('Y-m-d',s
会产生2012-06-11
,但是php返回2012-06-18
,好像它将本周解读为下周。为什么会有这种行为?我应该怎么做
谢谢
--杰夫我认为这是解决你问题的办法:
$monday_date = date("Y-m-d", mktime(0,0,0, date("m"), date("j")-(date("w")+1), date("Y")));
date('Y-m-d',strottime('last Monday',strottime('Sunday'))代码>
这将搜索下一个星期日之前的星期一。根据文档
然后本周的周一
将首先前进到下周一的,然后处理本周的相关文本
dayname:移动到此名称的下一天,除非它是当前日期,否则它将不会前进。换句话说,如果当前日期是6月11日,则strotime(“本周周一”)
将返回6月11日,而如果当前日期是6月13日,则strotime(“本周周一”)
将返回6月19日。如何定义“本周”?星期一到星期天?星期天到星期六?周六到周五?或者别的什么?很有趣。我刚刚在PHP5.4下运行了它,在“本周周一”中获得了第11名,在“本周一”中获得了第18名。您正在运行什么版本的PHP?另外,我假设“一周”开始于星期日或星期一,因为date()格式提供了关于
的选项。当您使用DateTime对象时,它是否给出了相同的错误日期?e、 g.$d=新日期时间(“本周周一”);echo$d->格式('Y-m-d')代码>