Nevíte někdo, jak zjistit počet nocí ve dvou zadaných intervalech? OD i DO mám v unixovým formátu...
předem díky
Pocet noci = pocet dni.
$pocet = round(($do - $od)/86400);
no to totiž není tak docela pravda. pokud bude od datum 20.11.2006 18:00 a datum do 21.11.2006 10:00 bude výsledek něco pod jedna (např. 0,8). Vyřešiljsem to tak, že zaokrouhluji nahoru. snad to má obecnou platnost.
to wrata:
zaokrouhlování nahoru má také jednu nevýhodu, totiž, když bude datum 20.11.2006 6:00 a druhé 20.11.2006 20:00 bude výsledek také pod jedna, což při zaokrouhlení je "jedna noc", ale ve skutečnosti žádná noc nebyla.
Možná by tam ještě chtělo zaimplementovat kontrolu dne, pokud bude stejný den, nic nepočítat a napsat automaticky nula nocí.
Ono jde i o to, jak si vlastně budeme noc definovat a k jakému účelu ten údaj potřebujeme, zda budeme
a) noc uvažovat jako přechod času přes půlnoc nebo
b) zda je to doba od západu Slunce k východu.
2Ota: Ju to mas pravdu s tim od 6 do 20. Blizi se to k 1. To mne nenapadlo.
Mensi jistotu bych dal do varianty a) prechod pres pulnoc. Ten uz je presnejsi.
$pocet = Date("j",$do) - Date("j",$od);
Ale na druhou stranu je dobre si predem definovat termin "noc". Protoze za noc muzu povazovat i cas od pulnoci do rana. V tom pripade varianta a) neplati.
Proste jde o to, jak moc presne to potrebujes. Pri hrubem odhadu klidne staci jiz uvedene priklady. Pro presne urceni uz budes potrebovat podminky, ktere musis vhodne definovat.
to Tomik:
I tebou naposledy uvedený zápis má své mouchy
$pocet = Date("j",$do) - Date("j",$od);
např.
$od = 22.10.2006
$do = 1.11.2006
$pocet = -21
skutecnost = 10 nocí
Jak jsem psal, wrata si musí definovat, co chce považovat za noc.
Potom se dá něco konkrétního vymyslet, takto je to moc obecné.