PHP idokezeles

Itt van egy kis leiras: http://derickrethans.nl/obtaining-the-next-month-in-php.html

Tudja valaki annak az okat, hogy miert igy mukodik belul? Valami kulso libet hasznal, vagy tenyleg ennyire gagyin implementaltak (next month == egyet hozzaadunk a honaphoz, aztan szamolunk...).

Erdekes ez a PHP. Foleg, hogy a mukodese a fuggvenynek a hivatalos oldalon nincs is rendesen definialva, mig a cikkben a szerzo azt allitja, hogy ez nem bug, hanem normal mukodes. Namarmost, ha nincs specifikalva a dolog, akkor mindenre ra lehet mondani, hogy normal mukodes. Pontosabban: "I do not create bugs. It's just software with random features."

Hozzászólások

Bár nem válasz a kérdésedre, de a Zend_Date elég jól használható ilyesmikre.

$ php -r "echo date('Y-m-d', strtotime('+1 month'));";echo
2010-02-20

t

Bahh, elolvastad a cikket?

Januar 1 es 29 kozott mukodik a dolog. Ha mondjuk ezt 30-an, vagy 31-en irod, akkor a next month ertek marcius lesz, mert a napok szamat 30-ra, ill. 31-re allitja, viszont februar 30, ill. 31 nincs, az mar neki marcius...nem am a honapot novelne eggyel, es ha az tulcsordul, akkor az evet...aaa, dehogy.

Szia!
en mindig unix idot hasznaltam es amikor ki kellett irni akkor alakitottam.
Igy soha nem volt gondom a szamolassal!

szép napokat
zsömi

Március 31-gyel is rosszul működik. Sőt van még néhány ilyen.
Erre a problémára nincs minden helyzetben jó megoldás. El kell dönteni, hogy csak a következő hónap nevére vagyunk-e kiváncsiak, vagy esetleg a 28--31 nappal későbbi dátumra.

-----
Dropbox tárhely igénylése: https://www.getdropbox.com/referrals/NTI2MzM2MjA5

Esetleg trunc-olod a honap elsejere, es utana adsz csak hozza 1 honapot. Mar ha csak a honap az erdekes. Ha arra vagy kivancsi, hogy 1 honap mulva a honap azonos napjan mi lesz, akkor eloszor definialnod kell, hogy februar 31. az melyik honaphoz tartozik. Utobbira nem ismerek minden szempontbol elfogadhato definiciot.
Az egesz idoszamitasi rendszer amugy ugy rossz, ahogy van. Ha nem tudnam, hogy regebbi, az ember siman azt hihetne, hogy az angolszaszok talaltak ki. Az o rendszerukbe sokkal jobban illeszkedik, annyira logikatlan.

--
"Apple have scrapped their plans for releasing Childrens iTouch after realision the iTouch Kids was not a good product name." - sickipedia

Hat, attol fugg. A majak idoszamitasa bizonyos szempontbol jobb, ugyanakkor nekik vannak "nem letezo" napjaik, vagyis amik csak ugy lognak a levegobe.

Az a baj egyebkent, hogy a fold forgasat/keringeset nem lehet jol felosztani. Egy napnak mindenkeppen egy forgasi periodusig kell tartani, egy evnek pedig egy keringesi periodusig, kulonben osszekavarodik minden. Tehat a 365,25 napos even nem lehet modositani. Innentol meg sux.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

a java Calendar ketfele add muveletet tamogat, normal esetben honapok eseteben modulo 12 osszeadast vegez, a datum tobbi reszet nem bantja,
de be lehet allitani a rollover flaget, ekkor pont ugyanigy mukodik, mint a php megoldasa: hozzad az adott mezohoz, majd szamol
ott is kb hasonlokeppen csordul tul, ha mondjuk januar 30-an a naphoz hozzaadsz 30-at

mellesleg a datumkezelessel mindenhol csak a szopas van, nem irigylem azokat akiknek 40 evnel regebbi datumokkal is kell dolgozniuk...

Valoszinu, hogy valahol melyen mindenki ugyanazt a - glibc beli - megvalositast hasznalja. Mindegy, ettol meg a PHP nem lett jobb nyelv, csak eggyel kevesebb bug van benne es eggyel tobb feauture.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Nem baj az, ha nem PHP specifikus a hiba, a nagyobb baj az, hogy a hivatalos dokumentacioban nincs leirva a pontos mukodes, nincs specifikalva, hogy ez mit csinal, milyen inputot fogad el, es arra az inputra milyen outputot general. Igy aztan a PHP dokumentacio elegge hasznalhatatlan. A Java vilagaban meg sajnos az Eclipse GEF/Draw2D ilyen.