Oto przybliżona próbka mojego aktualnego kodu:

$start_date = '01/02/2003';

for($i=1 ; $i<3 ; $i++){

$expiration_date = $start_date->addMonth(12);

}

dump($expiration_date ); //outputs 01/02/2005
dd($start_date); //outputs 01/02/2005

Moje pytanie brzmi, dlaczego moja zmienna data_początku również staje się taka sama ze zmienną data_wygasania.

Potrzebuję daty rozpoczęcia na końcu pętli, aby nadal miała oryginalną wartość, która jest 01.02.2003.

1
kapitan 6 listopad 2018, 05:21

1 odpowiedź

Najlepsza odpowiedź

Kiedy uruchamiasz metody addMonth na obiekcie Carbon, aktualizuje on sam obiekt. Oto, co musisz zrobić:

$expiration_date = $start_date->copy()->addMonth(12);

copy tworzy nowy obiekt Carbon

Zapoznaj się z dokumentacją

3
Kapitan Teemo 6 listopad 2018, 05:31