Newsgroup: it.comp.lang.javascript
Titolo: Crossbrowsing? No, grazie!

Buongiorno a tutto il NG.
Innanzitutto: scusatemi se per caso affronterò un argomento trito e ritrito.
Bug (Millenium?) di NETSCAPE (qualsiasi versione dalla 4 in poi)
Ho fatto le prove su diverse macchine sulle quali non c'è una versione
identica di Netscape.
Ebbene, il getYear() Netscape lo restituisce come 100!
Sissignore.
Provare per credere.
<script language="javascript">
var adesso = new Date();
var anno   = adesso.getYear();
alert(anno)
</script>
La cosa si risolve ovviamente aggiungendo 1900 alla variabile.
Considerazione.
Da quando N è stato acquisito da AOL si sta comportando sempre peggio.
Bill Gates sarà contentissimo, immagino.
Mi sa che l'unica alternativa sia passare in massa su piattaforme LINUX.

Ti avverto che il risultato di Netscape è perfettamente corretto, casomai è
Explorer che sbaglia.
La definizione di getYear() è infatti "anni passati dal 1900" e quindi il
risultato giusto è 100, mentre Explorer dà 2000, non rispettando lo
standard.
In questo caso è Netscape ad avere la piena ragione

 wrote in message 87c37a$f22$1...@nslave1.tin.it...


Evidentemente č la documentazione Microsoft :-)
Ti cito alla lettera ciň che č riportato sulla documentazione ufficiale:
"getYear()  ritorna l'anno dell'oggetto Date corrente come intero pari al
valore dell'anno meno 1900"
Si vede anche che č piů corretto per la storia delle due cifre. Perchč
l'anno fino al 1999 deve essere a 2 cifre e dal 2000 in poi a 4?
La logica ci dice che nel duemila  o si ottiene 00 (casino stile millennium
bug) oppure 100.
Ottenere interi a 4 cifre significa cambiare da un giorno all'altro la
definizione di getYear().

 wrote in message
87cjr2$96r$1...@nslave1.tin.it...
| Evidentemente è la documentazione Microsoft :-)
| Ti cito alla lettera ciò che è riportato sulla documentazione ufficiale:
| "getYear()  ritorna l'anno dell'oggetto Date corrente come intero pari al
| valore dell'anno meno 1900"
| Si vede anche che è più corretto per la storia delle due cifre. Perchè
| l'anno fino al 1999 deve essere a 2 cifre e dal 2000 in poi a 4?
| La logica ci dice che nel duemila  o si ottiene 00 (casino stile
millennium
| bug) oppure 100.
| Ottenere interi a 4 cifre significa cambiare da un giorno all'altro la
| definizione di getYear().
|
|
Scusate se mi intrometto, ma la mia guida dice:
Microsoft® JScript®
Metodo getYear
----------------------------------------------------------------------------
----
Descrizione
Restituisce il valore dell'anno in un oggetto Date specificato.
Sintassi
oggDate.getYear( )
Osservazioni
Questo metodo è stato incluso per compatibilità con le versioni precedenti.
È consigliabile invece utilizzare il metodo getFullYear.
Il valore restituito per il secolo corrente è un valore intero di due cifre
che rappresenta la differenza tra l'anno memorizzato e l'anno 1900. Per le
date che non appartengono al secolo corrente, viene restituito l'anno
composto da 4 cifre. Per l'anno 1996, ad esempio, il valore restituito
sarebbe 96, ma per gli anni 1825 e 2025 viene restituito l'anno espresso con
quattro cifre.
----------------------------------------------------------------------------
----

 wrote in message
nJjm4.59691$C3.6...@news.infostrada.it...


Di che guide state parlando?
Potete dare i nomi, titoli, ecc?
--
-----------------------------------------------------------------
mailto:
kiko...@libero.it
mySite(L'isola che non c'è, per ora): 
http://web.tiscalinet.it/kikopit
ourSyte(comunitàArgonauti): 
http://clanargonauti.freeweb.org
ourSyte.mirror:                      
http://web.tiscalinet.it/clanargonauti
(Qualcuno ci vada e ci faccia un po' di preo...)
-------------------------------------------------------------------

Sissignore.
Mi spiace, ma ha ragione Netscape.
getYear restituisce l'anno dal 1900. Quindi 2000 == 100
Per l'anno a quattro cifre c'č getFullYear( )
Per convincere tutti vi metto quello che dice la reference di JS1.3 riguardo getYear, presa ovviamente dal sito DevEdge
getYear
Returns the year in the specified date according to local time.Method of
 Date
Implemented in
 JavaScript 1.0, NES 2.0
JavaScript 1.3: deprecated; also, getYear returns the year minus 1900 regardless of the year specified
ECMA version
 ECMA-262
Syntax
getYear()
Parameters
None
Description
getYear is no longer used and has been replaced by the getFullYear method.
The getYear method returns the year minus 1900; thus:
For years above 2000, the value returned by getYear is 100 or greater. For example, if the year is 2026, getYear returns 126.
For years between and including 1900 and 1999, the value returned by getYear is between 0 and 99. For example, if the year is 1976,
getYear returns 76.
For years less than 1900 or greater than 1999, the value returned by getYear is less than 0. For example, if the year is 1800,
getYear returns -100.
To take into account years before and after 2000, you should use Date.getFullYear instead of getYear so that the year is specified
in full.
Backward Compatibility
JavaScript 1.2 and earlier versions. The getYear method returns either a 2-digit or 4-digit year:
For years between and including 1900 and 1999, the value returned by getYear is the year minus 1900. For example, if the year is
1976, the value returned is 76.
For years less than 1900 or greater than 1999, the value returned by getYear is the four-digit year. For example, if the year is
1856, the value returned is 1856. If the year is 2026, the value returned is 2026.
Examples
Example 1. The second statement assigns the value 95 to the variable year.
Xmas = new Date("December 25, 1995 23:15:00")year = Xmas.getYear() // returns 95
Example 2. The second statement assigns the value 100 to the variable year.
Xmas = new Date("December 25, 2000 23:15:00")year = Xmas.getYear() // returns 100
Example 3. The second statement assigns the value -100 to the variable year.
Xmas = new Date("December 25, 1800 23:15:00")year = Xmas.getYear() // returns -100
Example 4. The second statement assigns the value 95 to the variable year, representing the year 1995.
Xmas.setYear(95)year = Xmas.getYear() // returns 95
See also
Date.getFullYear, Date.getUTCFullYear, Date.setYear
---
the fly on the net
il webmaster piů alto del mondo
"the Art of JavaS." 
http://www.probo.it/aoj
"the devil inside" 
http://members.tripod.com/netfly
e-mail: 
net...@netbusiness.it

 Microsoft® JScript®
Appunto JScript, ovvero il JavaScript secondo Microsoft
Io parlo invce di quello standard

 cerchero' un'altra donna dentro ai sogni di Tarzan...

 Per l'anno a quattro cifre c'è getFullYear( )
Magari tutti i browser della stessa Netscape si fossero comportati allo
stesso modo. Dal sito Netscape sullo scripting
http://developer.netscape.com/viewsource/wyner_2k/wyner_2k.html
Il 2 Gennaio avevo sollevato la questione per un riscontrato millenium bug
in una mia applicazione e mi ero rivolto alla vostra esperienza.
Come mai allora nessuno vi presto' attenzione ;-)
POST: "Millenium Bug now.getYear()"
Ciao e grazie da un vostro lettore che decisamente dal basso della sua
ignoranza in JS partecipa poco attivamente.

 > MicrosoftŽ JScriptŽ


 > > Microsoft® JScript®


 wrote in message
87iclq$c3m$1...@nslave2.tin.it...


 ha scritto nel messaggio
news:dldn4.77221$C3.8...@news.infostrada.it...


In effetti JavaScript ha già uno standard definito dalla Netscape.
JScript pure, definito dalla MS.
Il problema è fare in modo che i due *differenti* linguaggi coincidano...
---
the fly on the net
il webmaster più alto del mondo


 ECMA-262
ECMAScript, il javascript-core, è uno standard. E comprende l'oggetto Date.
In questo caso Microsoft ha implementato male lo standard.
--
N'Drillo