Autor Zpráva
W4C
Profil
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ůbec


Pří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
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
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
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
Radek9:
Psal jsem, že "V absenci mezery za měsícem problém není.", tzn, že jsem to zkoušel ;)

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