Autor | Zpráva | ||
---|---|---|---|
Berny Profil |
#1 · Zasláno: 4. 11. 2009, 16:04:19
Nazdárek,
snažím se vyřešit, jak spočítat počet dnů ze zadaného intervalu. Např. kolik je dnů od 10.10.2009 do 15.10.2009. Odpověď je 6 (10, 11, 12, 13, 14 a 15.10.2009). Konstrukci na výpočet jsem našel: 1+ceil((strtotime('2009-10-15')-strtotime('2009-10-10'))/(60*60*24)) Vše fungovalo jak má do té doby, než jsem narazil na jeden interval, který vrátil nesprávný počet dnů. Jedná se o interval 23.10.2009 až 26.10.2009, který místo 4 dnů vrátí 5! Konkrétní problém je, že funkce strtotime('2009-10-26') vrátí 1256511600 místo hodnoty 1256508000! Otázka teď zní, jak to vše vyřešit popř. jakou jinou konstrukci na výpočet dnů použít. Děkuji, Berny |
||
Chamurappi Profil |
#2 · Zasláno: 4. 11. 2009, 16:25:32
Reaguji na Bernyho:
„Konkrétní problém je, že funkce strtotime('2009-10-26') vrátí 1256511600 místo hodnoty 1256508000!“ Rozdíl je 3600, tedy jedna hodina. Copak se asi mohlo stát… Nevím, jestli v PHP existuje nějaké elegantnější řešení, ale pokud jsou ve vstupních řetězcích jen roky-měsíce-dny, mělo by stačit použít místo ceilu normální zaokrouhlování. |
||
Berny Profil |
#3 · Zasláno: 4. 11. 2009, 17:11:16
Chamurappi:
Díky moc, vůbec mě nenapadlo udělat si rozdíl těch návratových hodnot.. pak by mě možná ten letní čas i napadl - mockrát děkuji za pomoc. |
||
Nox Profil |
#4 · Zasláno: 4. 11. 2009, 17:58:36
Nemělo by http://cz2.php.net/manual/en/datetime.diff.php brát takové věci v úvahu?
|
||
Berny Profil |
#5 · Zasláno: 4. 11. 2009, 18:32:26
Nox:
Tato třída je podporována až od verze 5.3.0. S mojí aktuální verzí 5.2.3 to nemám jak ověřit. |
||
Časová prodleva: 14 let
|
0