Autor Zpráva
lokix
Profil
Zdravím všechny zde na fóru,

mám menší problém (Google a i zde na fóru jsem hledal) s datumem, který vytáhnu z db a chci ho změnit (dopředu neznám nový datum) tak aby se k němu ještě navíc přičetlo + 180 dní. Přičtení samo o sobě není problém, ale jen pokud se jedná o aktuální datum.

Mám proměnné:
$datum = date("j.m.Y");
$datum2 = date("j.m.Y", strtotime("+180 day"));
Toto funguje tak jak má a oba datumy se uloží do db včetně oněch 180 dní v pořádku do db. Ale při následné editaci když si vyberu už změněný datum (řádek z db obsahujíci datum z $datum) a chci ho změnit například o 10 dní dopředu (změna pouze dopředu) tak aby se automaticky zvedla i hodnota druhého datumu v db o těch např.: 10 dní, ale pořád byla o 180 dní rozdíl.

Snad je to srozumitelné a rači uvedu příklad -
něco jako toto:
$date = radek['datum']; // vypíše např.: $date = "29.07.2012";

$datum = date($date); // Toto právě nevím jak udělat
$datum2 = date("j.m.Y", strtotime("+180 day"));

Moc děkuji za jakékoliv informace, nakopnutí nebo ukázku a přeji hezký večer.
Tori
Profil
lokix:
Datum je lepší do DB ukládat jako typ DATE nebo DATETIME, ne jako řetězec. Pak se s tím dá i pracovat jako s datem, např. SQL dotazem přičíst x dní k oběma sloupcům.

V PHP můžete k relativním datům přidat i datum, ke kterému se vztahují.
var_dump(date('j. n. Y', strtotime('+10 days'))); // 2. 8. 2012
var_dump(date('j. n. Y', strtotime('16.4.2010 +10 days'))); // 26. 4. 2010
nebo objektově:
$d = new DateTime('16.4.2010'); // pozor, s mezerami (16. 4. 2010) to nefunguje
var_dump($d->format('j. n. Y'));
$d->modify('+10 days');
var_dump($d->format('j. n. Y'));
lokix
Profil
Tori:
Děkuji za opravdu rychlou odpověď a ani nevím jak poděkovat. Nečekal jsem, že to bude tak jednoduché.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: