Autor Zpráva
Hanysek01
Profil *
dobry den. potřeboval bych pomoct s datumy v php.
mam formulař kde si pošlu do dalši stranky 2 datumy ve tvaru DD.MM.YYYY

potřeboval bych spočitat kolik dni je mezi těma datumy. zkoušel sem ty dvě proměne ktere mi přijdou z formuláře odečíst, pokud jsou datumy ve stejnem měsíci, funguje to správně, ovšem pokud jsou měsíce jiné, je výsledek nějaké desetiné číslo.

dále bych potřeboval projit v rozmezí těch dvou datumů všechny dny, a vypsat kolik dní je pracovních a kolik dní jsou víkendy.

děkuji za pomoc
djlj
Profil
Datumy? Nejspíš myslíš data.

1. Převeď si to na timestamp a odečti, následně vynásob 86400 — tím získáš počet dní.
2. K tomu budeš potřebovat kalendář a jednotlivé dny porovnávat. Každý všední den totiž není pracovní.
joejoe
Profil *
$datum1 = strtotime($datum1str); // prevede string na unix timestamp
$datum2 = strtotime($datum2str);

$rozdil = abs($datum1-$datum2);

// unix timestamp udava pocet sekund od 1.1.1970 00:00:00 (tusim)

$rozdil_dnu = ((date('Y', $rozdil) - 1970) + date('z', $rozdil)+1);

// to prochazeni bych udelal asi takhle:

$vikend = 0;
for ($i = $datum1; $i < $datum2; $i += (24*60*60) ) {
$den_v_tydnu = date('N', $i);
if (($den_v_tydnu == 6) || ($den_v_tydnu == 7)) {
$vikend ++;
}

}
$pracovni = $rozdil_dnu - $vikend;

// tohle cele jsem ted napsal z hlavy, takze je to bez zaruky - jde tam spis o myslenku
Hanysek01
Profil *
// tohle cele jsem ted napsal z hlavy, takze je to bez zaruky - jde tam spis o myslenku

jsi frajer, vše funguje nádherně. dik moc
peter789
Profil *
Nejako neruzumiem riadku

$rozdil_dnu = ((date('Y', $rozdil) - 1970) + date('z', $rozdil)+1);

Vobec, co znamena ked je (date('Y', $rozdil) ?

dakujem

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