From: Ing. Vlastimil Pospíchal (vpospichal@tiscali.cz)
Date: 20. 04. 2003, 09:14 CEST
On Sat, Apr 19, 2003 at 05:53:22PM +0200, mail@pp21.cz wrote: > Aby tenhle e-mail nebyl tak zbytecnej, stravil jsem cca pul hodiny tim, > abych dal dohromary jeden radek kodu, ktery to vyresi. Co neni v hlavem to > je v rukou, nejprve to melo radku 5 ;o). Nehlede na to, ze uz to urcite > vymyslelo nekolik lidi predemnou. > > datum = new Date(); > rok = datum.getYear(); > if (rok < 138) { rok += 1900 } > > Bude to fungovat az do roku 2037, pak uz Opera i Mozilla zacinaji opet > pocitat od zacatku. Proc tomu tak je nevim, ale urcite nam to tu nekdo > (Kit? :o) objasni. 138*365*24*60*60=2^32 Čas se udává v počtu sekund od 1.1.1970. Je to 32bitové číslo. Opera i Mozilla zřejmě k tomu připočtou ještě počet sekund od 1.1.1900, "aby se to snáze počítalo". Přiblížíly si tak datum zkázy algoritmu o 70let. Počítá se zřejmě s tím, že v roce 2038 to už bude vyřešené jinak. > A co s tim mas delat? Najdi v tom tvem scriptu misto, kde se zjistuje rok > (getYear) a pokud se jeho hodnota vklada do nejake promenne (v mem > prikladu 'rok'), vloz za nej tu podminku 'if' s tim, ze zmenis ten muj > 'rok' (2x) na jmeno tve promenne. Pak by to mohlo byt OK. > > Tohle se nekam uloz a muzes to vyzkouset: > <script> > datum = new Date(); > rok = datum.getYear(); > if (rok <= 137) { rok += 1900 } > document.write(rok); > </script> > -pp21- Také řešení. Škoda jen, že to není ošetřeno už v metodě getYear. Třeba to v některé z příštích verzí Opery či Mozilly bude :-) Kit -- Ing. Vlastimil Pospíchal http://www.hoteldrnholec.cz
This archive was generated by hypermail 2.1.6 : 20. 04. 2003, 09:59 CEST