Autor | Zpráva | ||
---|---|---|---|
Hanysek01 Profil * |
#1 · Zasláno: 10. 8. 2007, 12:01:55
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 |
#2 · Zasláno: 10. 8. 2007, 12:15:27
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 * |
#3 · Zasláno: 10. 8. 2007, 12:17:55
$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 * |
#4 · Zasláno: 10. 8. 2007, 12:57:19
// 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 * |
#5 · Zasláno: 11. 8. 2007, 13:27:10
Nejako neruzumiem riadku
$rozdil_dnu = ((date('Y', $rozdil) - 1970) + date('z', $rozdil)+1); Vobec, co znamena ked je (date('Y', $rozdil) ? dakujem |
||
Časová prodleva: 17 let
|
0