プロが教える店舗&オフィスのセキュリティ対策術

日付(西暦4桁部)が、マックのサファリ(safari)で正しく表示されない。

↓==========================================

myD = new Date();
myD = new Date(myD.getYear(), myD.getMonth(), myD.getDate());
myYear = myD.getYear();
myYear4 = (myYear < 2000) ? myYear+1900 : myYear;

↑==========================================

について、ブラウザによって以下のような結果になります。

myYear4(西暦4桁)が、
ie(windows)では、2010
safari(mac)では、110
となります。

なお、
myYearが、
ie(windows)では、2010
safari(mac)では、-1790
となっていたので、

myYear4 = (myYear < 2000) ? myYear+3800 : myYear;

とすれば、safari(mac)でも2010になったのですが、
通常、そのようなことはしないと思います。

何か問題があるのでしょうか。
どなたかご存知の方、ご教授願います。

A 回答 (2件)

IEは知りませんが、getYearの返り値ならOperaでもFirefoxでも


Safariでも、1900年からの差分になります。今年なら110。

西暦110年の日付を作成してもう一度getYearすると、1900年からの
差分で-1790になるのは納得できますよね。

IEとの互換性を気にするなら、getFullYearが常に西暦の数値を返す
そうなので、こちらを使って下さい。
    • good
    • 0
この回答へのお礼

知識不足のため、
getFullYear
の関数自体、知りませんでした。

うまくいきました。
ありがとうございました。

お礼日時:2010/07/15 10:05

getFullYear()


では、だめか?
    • good
    • 0
この回答へのお礼

>getFullYear()
>では、だめか?

すんなりいきました。
通常はこうするのでしょうか。
知りませんでした。
誠にありがとうございました。
 

お礼日時:2010/07/15 10:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!