Autor Zpráva
Hdsr
Profil *
Zdravím,

mám funkci, která mi v cyklu odečítá dny od aktuálního data. Viz. kód

$datum = date('j.n.');
...
return date('j.n.', strtotime($datum) - $dny * 86400);

Takhle to funguje a normálně to odečte, pokud to ale zapíšu takhle

$datum = date('j.n.');
...
return date($datum, strtotime($datum) - $dny * 86400);

Tak už to nefunguje. Zůstane tam aktuální datum. Zkoušel jsem hodně variací, ale nedopátral jsem se.

Díky za rady.
Joker
Profil
Hdsr:
Protože výsledkem toho druhého je například:
return date('22.1.', strtotime($datum) - $dny * 86400);
Kdyby v proměnné $datum byl řetězec "j.n.", fungovalo by to stejně jako to první.
Doplnění:
Samozřejmě by to nefungovalo, protože ve druhém použití proměnné $datum zase musí být to datum.
Uvedený kód nedává smysl.
Hdsr
Profil *
Chápu jak to myslíte. Ale pokud už bych tam potřeboval konkrétní datum (nemusí být dnešní)? Jak je od sebe odečíst?
Alphard
Profil
Asi nechápete. První parametr je formátovací řetězec, nemá smysl vkládat tam jakékoliv konkrétní datum. Odečítání máte v druhém parametru, tam si provádějte libovolnou aritmetiku.
Nebo moderně použít cz2.php.net/manual/en/datetime.modify.php, případně cz2.php.net/manual/en/datetime.diff.php pro rozdíl dvou dat, nevím, co přesně chcete.
Hdsr
Profil *
Omlouvám se, že ještě otravuji. Zkouším takto a nejde to.

$date = "22.1.";
$dny = 6;
date_modify($date, '-'.$dny.' day');
echo date_format($date, 'd.m.');
Bertram
Profil
Věnujte dokumentaci více času :)

<?php
$date = new DateTime('2014-1-22');
$dny = 6;
$date->modify('-'.$dny.' day');
echo $date->format('d-m');

echo "<br />";

$dateII = date_create('2014-1-22');
date_modify($dateII, '-'.$dny.' day');
echo date_format($dateII, 'd-m');
Hdsr
Profil *
Omlouvám se, vypadlo mi to tam. A ještě co se k formátu týče. Potřeboval bych měsíc jako jedno číslo (pokud je možno, teda ne 01 ale 1). Hledal jsem, našel jsem toto http://www.tvorba-webu.cz/php/datum-cas.php ale v té poslední tabulce, není číslo měsíce bez nul.
juriad
Profil
 format
    Format accepted by date().
http://cz2.php.net/manual/en/datetime.format.php

n     Numeric representation of a month, without leading zeros     1 through 12
http://cz2.php.net/manual/en/function.date.php

Raději studuj oficiální dokumentaci. Tam před tebou nic nezatají.
Hdsr
Profil *
Děkuji mnohokrát. Budu se snažit, ovšem české vody jsou pro mě přijatelnější :). Ještě jednou tedy děkuji.

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: