Autor Zpráva
quatzael
Profil
Jde prosím nějak jednodušeji zapsat ten poslední řádek? Myslím, že to funguje jak má, ale je toho tam podle mě zbytečně moc..

$date = "2015-04-10";
$add = 5;
$start= date_create($date);
$output = date('d.m.Y', strtotime("+$add day", strtotime(date_format($start, 'Y-m-d'))));
 // chci, aby $output vracel 15.04.2015
lionel messi
Profil
quatzael:
Jde prosím nějak jednodušeji zapsat ten poslední řádek?
Áno, dokonca môžeš jeden riadok ušetriť:
$date = "2015-04-10";
$add = 5;
$output = date('d.m.Y', strtotime("+$add day", strtotime($date)));
echo $output; //vráti 15.04.2015

Dôkaz.
Davex
Profil
Pokud se můžeš spolehnout na autodetekci formátu data, tak by to šlo nějak takto:
$date = "2015-04-10";
$add = 5;
$output = date('d.m.Y', strtotime("$date +$add day"));
quatzael
Profil
lionel messi:
Áno, dokonca môžeš jeden riadok ušetriť:
Nemůžu to vynechat, ty řádky nad tím jsou jen pro ilustraci, co tam do tý funkce leze. potřebuju tam dávat přímo objekt date


Takže asi takhle:
$output = date('d.m.Y', strtotime("+$add day", $start));

Jo?


Já jsem se k tomu kódu vrátil po několika měsících, nevím už proč jsem to tak složitě převáděl sem a tam.. Asi mi to nefungovalo nebo já nevím.
Alphard
Profil
quatzael [#4]:
Já třeba všude používám objekt Datetime. Mám vlastní modifikonou implementaci, která umí parsovat i český formát (vstup z formulářů, kde je Datepicker), takže stačí zavolat konstruktor. Některé činnosti s datem jsou v nativní implementaci neohrabané (třeba to přidávání intervalu), takže na to mám vlastní metodu. A dále si buď explicitně zavolám format() když ho potřebuji, nebo předám db layeru celý Datetime objekt (a víc se o to nestarám).

Kód z [#1] bych napsal takhle
$output = (new MyDatetime($date))->addDays(5)->format('d.m.Y');
Žádné převody na stringy/timestampy bych neřešil.
quatzael
Profil
Ok, díky za rady.

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: