| Autor | Zpráva | ||
|---|---|---|---|
| W4C Profil |
#1 · Zasláno: 16. 7. 2010, 18:35:18 · Upravil/a: W4C
Asi se bude jednat o chybu funkce strtotime v nižších verzích PHP(částečně i v současné),ale třeba je problém jen v rozdílné interpretaci slovního zadání parametrů v nižší verzi PHP.Proto se ptám, jak bez oklik (viz příklad 3) získám pomocí této funkce "poslední neděli v říjnu tohoto roku"?
Na PHP 5.2.0-8: Příklad1: $year=date("Y");
$expDSTL_dateXX = date("d.m.Y", strtotime("last Sunday of October".$year)); //změna letního času v formátu 31.10.2010
echo "expDSTL_dateXX1 je:".$expDSTL_dateXX; //Má vyjít 31.10.2010, vyjde 01.01.1970 - nebere to vůbecPříklad2: $year=date("Y");
$expDSTL_dateXX = date("d.m.Y", strtotime("last Sunday October".$year)); //změna letního časuv formátu 31.10.2010 -bez "of"
echo "expDSTL_dateXX2 je:".$expDSTL_dateXX; //Má vyjít 31.10.2010, vyjde 26.09.2010 - vyjde o měsíc méněPříklad3: $year=date("Y");
$expDSTL_dateXX = date("d.m.Y", strtotime("last Sunday November".$year)); //změna letního času v formátu 31.10.2010 -bez "of" a s "November"
echo "expDSTL_dateXX3 je:".$expDSTL_dateXX; //Má vyjít 31.10.2010, vyjde 31.10.2010 - vpořádku(ale s chybným zadáním)
v PHP 5.3.2 vyjde správný výsledek(31.10.2010) u 1/(správné zadání, správný výsledek) a 3/(špatné zadání, správný výsledek) Na 5.2.0-8+etch10, jež se nachází již dlouho na ic.cz, vyjde "správný" výsledek u 3/ V obou verzích PHP je u 2/ výsledek 26.09.2010 a obě vypočítaly "špatně" příklad 3. Takže rozdíl je jen v prvním příkladu, kde je uvedeno "of "Jiná předložka ale taky nefunguje (aspoň jsem to nezjistil) |
||
| nightfish Profil |
#2 · Zasláno: 16. 7. 2010, 19:30:11
W4C:
Doporučuji ke studiu manuál, jsou tam nějaké poznámky k používání "last". Co jsem pochytil zběžným prolétnutím, tak správně by mělo být "last sunday of October 2010". Btw v tvých kódech neděláš za názvem měsíce mezeru - nemůže být problém v tom? |
||
| W4C Profil |
#3 · Zasláno: 16. 7. 2010, 20:27:15 · Upravil/a: W4C
nightfish:
ano, "last Sunday of October 2010" je správné zadání - to mám napsáno v příkladu 1, ale nefunguje to bohužel v PHP 5.2.0-8.(hlavní problém je v "OF") Rok 2010 mám v proměnné, se kterou se dále pracuje Zadáno v celku, nebo s rokem pomocí proměnné - to je jedno, výsledek je vždy stejný V absenci mezery za měsícem problém není. Malá/velká písmena - nic neřeší. Sunday/Sun - nic neřeší Na podrobné studování manuálu teď bohužel moc času nemám,nic co by problém řešilo, tam není./formát zadání v příkladu 1/ je v pořádku a funkční (PHP 5.3.2)/. Proto se ptám, jestli někdo může potvrdit nebo vyvrátit případnou chybu této funkce v PHP v.5.2.0-8, aby se to nemuselo případně zbytečně řešit. |
||
| Radek9 Profil |
#4 · Zasláno: 17. 7. 2010, 09:55:37 · Upravil/a: Radek9
W4C:
Nevím, jestli je to přímo chyba, ale zkus za měsíc dát mezeru. Momentálně to máš totiž jako November2010, October2010 atp. |
||
| W4C Profil |
#5 · Zasláno: 17. 7. 2010, 12:23:12
Radek9:
Psal jsem, že "V absenci mezery za měsícem problém není.", tzn, že jsem to zkoušel ;) |
||
|
Časová prodleva: 15 let
|
|||
0