Autor Zpráva
Lorem
Profil *
Dobrý den,
měla bych dotaz ohledně výpočtu počtu dnů mězi dvěma daty.
Aktuálně používám :
$days = (strtotime($new_to) - strtotime($new_from)) / (3600 * 24);
Problém je tom, že mi občas vyleze desetinné číslo :O
Seith
Profil
Vytvořil bych 2 instance DateTime
$datetime1 = new DateTime($new_from);
$datetime2 = new DateTime($new_to);
a potém pomocí metody DateTime::diff zjistil rozdíl
$interval = $datetime1->diff($datetime2);
metoda DateTime::diff vrací objekt třídy DateInterval, pomocí metody DateInterval::format získáme počet dní
$days = $interval->format('%a');
případně počet dní lze získat také
$days = $interval->d
Lorem
Profil *
Oukej, hned vyzkouším =) Děkuji
Seith
Profil
s tím
$days = $interval->d
to byl úlet, jedná se pouze o počet dní menších než jeden měsíc
petr 6
Profil
Lorem:
Problém je tom, že mi občas vyleze desetinné číslo
Ony totiž existují i dny, které mají 25 hodin nebo jenom 23 hodin, a sice dny, kdy se mění čas letní/zimní.
Jan Tvrdík
Profil
Lorem:
Pokud $new_to a $new_from neobsahují informace o hodinách, tak by mělo stačit zaokrouhlení $days.
$days = round($days);
Šéva
Profil
možná bych to zkusil udelat pomoci mktime...
něco jako

$den_dnes=date("d");
$mesic_dnes=date("m");
$rok_dnes=date("Y");
$hodina_dnes=date("h");
$minuta_dnes=date("i");
$vterina_dnes=date("s");

$den_tyden=date("d")+7;
$mesic_tyden=date("m")+2;
$rok_tyden=date("Y");
$hodina_tyden=date("h");
$minuta_tyden=date("i");
$vterina_tyden=date("s");

$dnes=mktime($hodina_dnes,$minuta_dnes,$vterina_dnes,$mesic_dnes,$den_dnes,$rok_dnes);
$potom=mktime($hodina_tyden,$minuta_tyden,$vterina_tyden,$mesic_tyden,$den_tyden,$rok_tyden);

$rozdil=$potom-$dnes;

echo $rozdil/24/60/60;

tohle funguje v případě,že nebudeš potřebovat rozdíl i v minutách, vteřínách atd... vypisuje to rozdíl ve dnech ode dneška

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: