Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用strotime()在php中计算相对日期_Php_Strtotime - Fatal编程技术网

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

使用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年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',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')