DateTime-> modify('+ 1 day')for循环更改另一个变量

时间:2019-08-15 01:43:37

标签: php loops datetime for-loop

$iDATEs更改为2019-08-11。我想原因是$i=$iDATEs$i->modify('+1 day')

<?php
$iDATEs = DateTime::createFromFormat('d/m/Y H:i:s', $_POST['fDATEs'].' 00:00:00');//2019-08-01
$iDATEe = DateTime::createFromFormat('d/m/Y H:i:s', $_POST['fDATEe'].' 00:00:00');//2019-08-10
for ($i=$iDATEs; $i <= $iDATEe; $i=$i->modify('+1 day')) {
echo $i->format("Y-m-d").'<br>';
//It's show 2019-08-01 to 2019-08-10
}
echo $iDATEs->format("Y-m-d").'<br>';//It's changes $iDATEs to 2019-08-11. I guess the reason is $i=$iDATEs and $i->modify('+1 day')
echo $iDATEe->format("Y-m-d").'<br>';
?>

1 个答案:

答案 0 :(得分:1)

即使modify()的{​​{1}}方法返回一个DateTime变量,它也可以进行链接,但是它会修改变量本身的值,但不会返回新实例。对于更改对象的任何方法都是如此:DateTimeadd ...

您可以使用永远不会修改原始变量的DateTimeImmutable

sub

Live demo