[PHP] Jak dodawać do siebie dni?

Witam

Mam problem bo muszę dodać do siebie dni.

Daty są w takiej formie ROK-MIESIĄC-DZIEŃ (np. 2010-03-29) i chcę do tej daty dodać np. 4 dni (czyli będzie 2010-04-02)

Jak to zrobić w php ?

<?php= date_create('2000-01-01');date_add($date, date_interval_create_from_date_string('10 days'));date_format($date, 'Y-m-d');?[/code]



Powyższy kod to to czego szukasz...



Dodaje do daty "2000-01-01" 10 dni, co daje "2000-01-11".

to nie jest to o co mi chodzi

Chodzi o to że znam date, i jest to załóżmy data 2010-03-29 i chcę dodać do tej daty 4 dni i nie wiem jaki to będzie wynik i chcę, żeby php dla mnie to obliczyło (w tym przypadku wyjdzie wynik 2010-04-02)

Zamiast “data_create(‘2000-01-01’);” daj “data_create($data_current);”, gdzie “$data_current” to string z datą w takiej formie.

ehh…

nie chodzi mi o żadną zmianę formatu. Chodzi mi o dodawanie do siebie dni i że jak dodam 30+5 to żeby nie wyszło że to 35 dzień tylko że to już nowy miesiąc i wszystko wyglądało tak jak powinno być

To robi dokładnie to o co prosisz…

Tworzy nową zmienną z datą i na niej robi operacje…

twój kod nie działa jest taki błąd

Fatal error: Call to undefined function date_add() in /var/www/xxxxx/test.php on line 3

U mnie działa bezbłędnie, więc wina jest u Ciebie.

to musiałeś coś źle skopiować tutaj bo próbowałem na 4 różnych hostingach i na każdym ten sam błąd, nawet na unixstormie.

Kod skopiowany z mojego postu.

Zerknij tymczasowo u mnie:

http://xeon.servehalflife.com/temp2/date_add_10_days.php

weź jeszcze raz wklej ten kod bo naprawdę nie działa :slight_smile:

$date = date_create('2000-01-01');date_add($date, date_interval_create_from_date_string('10 days'));date_format($date, 'Y-m-d'); [/code]



Jakie błędy się pokazują?

ciągle ten sam błąd

Fatal error: Call to undefined function date_add() in /var/www/folder1/folder2/test.php on line 3

czyli error w tej lini

date_add($date, date_interval_create_from_date_string('10 days'));

Spróbuj:

$date = new DateTime('2000-01-01');$date-add(new DateInterval('P10D'));$date-format('Y-m-d') . "\n"; [/code]

znowu error

Fatal error: Call to undefined method DateTime::add() in /var/www/panel/files/test.php on line 3
$dni = 7;$wynik = date("Y-m-d H:i:s", time()+(60*60*24*$dni));

potrzebujesz php co najmniej 5.3.0

teraz działa wielkie dzięki :slight_smile:

Ale jak wprowadzić samemu date, bo nie chcę, żeby była dzisiejsza :slight_smile:

Widocznie na tym serwerze jest starsza wersja php, a potrzebna jest wersja (PHP >= 5.3.0) aby były obsługiwane te funkcje.

spróbuj:

$data = '2011-01-19';$dni = 7;