Hi,
Saudara Mark benar, bahwa itu bukan kesalahan IE menghasilkan angka 3900.
Itu kesalahan dari programer, function yang digunakan serta javascript
engine yang dipakai di browsernya.
Sebelum ECMAScript standarad, (JScript 3.0 dan versi berikutnya di Internet
Explorer dan JavaScript 1.3 di Netscape Navigator), function getYear
mengembalikan tahun dengan mengurangin 1900. Jadi tahun 2000 = 100.
Setelah ECMA Script di standardkan, function getYear diharapkan tidak
dipakai lagi. Para pemogram diharapakan memakain getFullYear. Tapi
masalahnya, tiap orang memakai browser yang berbeda-beda.
Untuk mengatasi itu, Microsoft dan Netscape mengubah hasil yang dikeluarkan
dari function itu, getYear
* mengembalikan 4 angka jika
1. >= 2000
2. < 1900
* mengembalikan 2 angka (00-99) jika
1. >= 1900
2. < 2000
Nah, mengapa dengan script yang sama, di IE mengeluarkan tahun yang salah
dan di Netscape mengeluarkan benar.
Saya sependapat dengan saudara Mark, mungkin saudara Elwin membuat:
d.getYear() + 1900
Dan saudara Elwin mentest dengan:
1. IE dengan JScript 3.0+
2. Netscape dengan JavaScript dibawah versi 1.3
Itu hanya teori saya saja. Apapun teori dibalik kesalahan tahun yang
dihasilkan, para pemogram diharapkan tidak memakai getDate lagi.
Siska Basri
http://padang.hypermart.net
PS:
Saudara Mark, itu yang di plasmedia pake bahasa apa?
http://www.plasmedia.com/frontline/plasmedia/help.asp?sid=646935658
Saya coba terjemahin di babelfish pake bahasa perancis, jerman, itali,
portugis dan spanyol, tapi tak bisa.
>From: "Mark P. Eliasaputra" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: <[EMAIL PROTECTED]>
>Subject: Re: [webauthor] Perbedaan tahun di netscape dan internet explorer
>Date: Thu, 13 Jan 2000 16:00:57 +0700
>
>Hi Elwin, Siska, dan yang lainnya,
>
>Sebenarnya kesalahannya bukan demikian. IE tidak mengembalikan getYear()
>sebagai
>angka 3900.
>
>Coba tampilkan tahun pakai IE dengan JavaScript berikut:
>
> d = new Date()
> document.writeln(d.getYear())
>
>Pasti yang keluar 2000!
>
>Coba script yang sama ditampilkan di Netscape. Di Netscape yang keluar 100.
>
>Nah salah di mana? Kok di script Anda sebelumnya di IE bisa keluar 3900?
>Itu
>karena pasti di script Anda asumsikan tahun cuma 00-99, maka Anda tambahkan
>1900:
>
> tahun = d.getYear() + 1900
> document.writeln(tahun)
>
>Ya pasti saja IE menghasilkan 3900 (2000 + 1900). Tapi paling parah jika
>scriptnya:
>
> tahun = '19' + d.getYear()
>
>Di IE keluar 192000, sementara di Netscape keluar 19100. Kacau beliau...
>benar-benar tidak Y2K compliant.
>
>Makanya hati-hati dengan getYear(). Memang sebaiknya diganti dengan
>getFullYear() saja. Atau buat kondisi sendiri:
>
>tahun = d.getYear()
>if(tahun < 2000) tahun += 1900 // hasilnya selalu empat digit.
>
>-----------------
>Mark P. Eliasaputra
>http://www.plasmedia.com/markpe
>[EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]
>Plasmedia - Plexis Erakarsa Multimedia
>
> > Hi,
> >
> > Itu kesalahan dari Internet Explorer.
> >
> > Coba ganti script anda dari "Get Year" ke "Get Full Year".
> >
> > "Get Year" cuma kasih 2 angka dan Internet Explorer. Sesudah tahun 2000,
>IE
> > menghitung tahunnya menjadi 3900.
> >
> > "Get Full Year" kasih 4 angka.
> >
> > Netscape sudah membetulkan kesalahan ini, maka itu tidak terjadi
>kesalahan
> > di Netscape. Dan Microsoft bilang, mereka tidak akan membetulkan
> > kesalahannya.
> >
> > Semoga Membantu.
> >
> > Siska Basri
> > http://padang.hypermart.net
>
>
>
>
>-= Dual T3 Webhosting on Dual Pentium III 450 - www.indoglobal.com =-
>To unsubscribe, e-mail : [EMAIL PROTECTED]
>To subscribe, e-mail : [EMAIL PROTECTED]
>Netika BerInternet : [EMAIL PROTECTED]
>
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
-= Dual T3 Webhosting on Dual Pentium III 450 - www.indoglobal.com =-
To unsubscribe, e-mail : [EMAIL PROTECTED]
To subscribe, e-mail : [EMAIL PROTECTED]
Netika BerInternet : [EMAIL PROTECTED]