Php 如何递增DateTime对象以查找下一个星期二?
我正在尝试使用DateTime类查找一些日期。我使用DateTime::modify order来查找下一个星期二,它很有效。但是,如果我下周二再找时间,我总是得到同样的日期。我做错了什么 代码如下:Php 如何递增DateTime对象以查找下一个星期二?,php,datetime,Php,Datetime,我正在尝试使用DateTime类查找一些日期。我使用DateTime::modify order来查找下一个星期二,它很有效。但是,如果我下周二再找时间,我总是得到同样的日期。我做错了什么 代码如下: $date = DateTime::createFromFormat('Y-m-d', '2015-04-01'); echo $date->format('d/m/Y') . "\n"; for ($n = 0; $n < 10; $n++) { $date = $date-&
$date = DateTime::createFromFormat('Y-m-d', '2015-04-01');
echo $date->format('d/m/Y') . "\n";
for ($n = 0; $n < 10; $n++) {
$date = $date->modify("first Tuesday of +1 week");
echo $date->format('d/m/Y') . "\n";
}
只需使用“下周二”而不使用+1周:
$date = DateTime::createFromFormat('Y-m-d', '2015-04-01');
echo $date->format('d/m/Y') . "\n";
for ($n = 0; $n < 10; $n++) {
$date->modify("next Tuesday");
echo $date->format('d/m/Y') . "\n";
}
顺便说一句,您不需要将
modify()
的结果赋给变量,因为它实际上修改了对象,而不是返回修改的日期。请尝试动态传递周数
$date = DateTime::createFromFormat('Y-m-d', '2015-04-01');
echo $date->format('d/m/Y') . "\n";
for ($n = 0; $n < 10; $n++) {
$date = $date->modify("first Tuesday of +".$n." week");
echo $date->format('d/m/Y') . "\n";
}
$date=DateTime::createFromFormat('Y-m-d','2015-04-01');
echo$date->格式('d/m/Y')。“\n”;
对于($n=0;$n<10;$n++){
$date=$date->modify(“第一个星期二+”、$n.“一周”);
echo$date->format('d/m/Y')。“\n”;
}
谢谢,这个例子也适用,但我正在使用的实际代码不适用。它是一个函数,有时会被调用,每次都应该在下周二(或需要的一天)返回。
01/04/2015
07/04/2015
14/04/2015
21/04/2015
28/04/2015
05/05/2015
12/05/2015
19/05/2015
26/05/2015
02/06/2015
09/06/2015
$date = DateTime::createFromFormat('Y-m-d', '2015-04-01');
echo $date->format('d/m/Y') . "\n";
for ($n = 0; $n < 10; $n++) {
$date = $date->modify("first Tuesday of +".$n." week");
echo $date->format('d/m/Y') . "\n";
}