Autor Zpráva
majo80
Profil *
Mám dva dátumy v klasickom tvare DD.MM.RRRR, napr. 09.09.2010 a 15.09.2010
Ako by som mohol vyrátať 15.09.2010 - 09.09.2010 tak aby mi vyšiel výsledok 6 dní?
Taps
Profil
majo80:
zkus třeba
$rozdil=mktime(0,0,0,9,15,2010) - mktime(0,0,0,9,9,2010);
    echo $rozdil/(3600*24);
Darker
Profil
Nevím co znamená vyrátať, promiň ale předpokládám, že chceš zjistit, podle titulku, počet dní mezi datumy.
Rozdělíme si datum na tři proměnné.
$den=Date("j");
$mesic=Date("n");
$rok=Date("j");
$denvroce=Date("z");

$den2=9;
$mesic2=9;
$rok2=2010;
$denvroce2=251;
//Nyní zjistíme počet dní v aktuálním roce a roce 2010
$rok_dnu=$rok%4==0?366:365;
$rok_dnu=$rok%4==0?366:365;
//teď spočítáme rozdíl let, předpokládám, že dnešní datum bude pozdější než to pevně zadané
$rozdil_let=$rok-$rok2;
//Rozdíl let vynásobíme počtem dní na rok a zaokrouhlíme (čtvrt dne se v tom ztratí.)
$roky_dnu=round($rozdil_let*365.25);
//Rozdíl let mezi měsíci
//Tady to by to bylo složitější, bude snažší zjistit kolikátý je daný den v roce, a to já neumím (nebo se mi nechce přemýšlet, čert to vem), takže jsem ho zadal při vstupu
$rozdil_dnu=$denvroce-$denvroce2;
echo "Celkový rozdíl je ".($roky_dnu+$rozdil_dnu)." dní"

K indexu dne v roce se dostaneš tak, že někam zapíšeš počty dní na každý měsíc, kro dubna, ten bude mít
$duben_dni=28+Date("L")//Date("L") vrací 1 v přestupném roce

nebo, pokud nepůjde o tento rok
$duben_dni=$rok_tohoto_dubna%4==0?29:28


Tak už nic, nestihl jsem to napsat, a navíc koukám, že se to dá udělat snadno. Taps mě předběhl
Majkl578
Profil
$datetime1 = new DateTime('15.09.2010');
$datetime2 = new DateTime('09.09.2010');
$interval = $datetime1->diff($datetime2);
echo $interval->days;
Jednoduché, elegantní.
gtext
Profil *
majo80:
a kdyz se vratime z výletu do historie tak tady mas "dnesni" reseni http://www.php.net/manual/en/datetime.diff.php
gtext
Profil *
majkl to sem dal driv. taky by to mohlo pred odeslanim ukazat jestli nekdo nepridal neco noveho.
panther
Profil
Darker:
Nevím co znamená vyrátať
spočítat. Ach, ti zahraniční pisatelé, že? :-)

gtext:
taky by to mohlo pred odeslanim ukazat jestli nekdo nepridal neco noveho.
tahle funkce tu je, asi jsi nedával pozor.

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:

0