自動更新日を正しく表示するには?

[上に] [前に] [次に]
fucchan [E-Mail] 2000/01/04(火) 01:11:22
更新日を自動で表示するスクリプトが正しく表示されません
2000年が3900年と表示されます
「getYear()に潜む2000年問題」のところは見たのですが自分のプログラムへどう応用していいのか分かりません^^;;
私のところのは
<!--
var md = new Date(document.lastModified);
var st = (md.getYear()+1900).toString() + "年" +
           (md.getMonth()+1).toString() + "月" +
           (md.getDate()).toString() + "日";
document.write(st);
// -->
このようなものです
実際どう変更すればいいのでしょうか?
どなたか教えて下さい・・お願いします

shin' [E-Mail] 2000/01/04(火) 06:08:33
DateオブジェクトのgetYearメソッドは、
2000年より小さい場合は、1900を足さないとダメですが、
2000年以上の場合は、1900を足さなくてもいいです。

if(md.getYear()<100){
st=md.getYear()+1900.toString()
}
else{
st=md.getYear().toString()
}

が正解。

fucchan [E-Mail] [HomePage] 2000/01/04(火) 15:20:19
[[解決]]
shin'さんお答えいただいてありがとうございます
でもうまく行きませんでした^^;;なぜかエラーが出て^^;;
で、結局COOL&COOLのしょういちさんに頼みました
で、こう言うスクリプトに落ち着きました

date=new Date(document.lastModified);

year=date.getYear();

if (year<2000) {
//Y2K未対応ブラウザ用(2100年になったら次の行を削除すること)
if (year>=100) {year=year+1900; }

if (year<10) { year="200"+year; }
else if (year<100) {year="20"+year; }
else if (year<1000) {year="2"+year; }
}

month=date.getMonth() + 1;
if (month<10) { month="0"+month; }

day=date.getDate();
if (day<10) { day="0"+day; }

update=year+"/"+month+"/"+day;
document.write(update);

これでIE,ネスケとも正常に表示されるようになりました
いろいろありがとうございました

toshi [HomePage] 2000/01/04(火) 22:20:11
getFullYear();
ではだめなのでしょうか?

ma3ki 2000/01/05(水) 10:57:56
自動更新日を正しく表示するには-
私が、行った解決策を参考になればと思い、投稿します。
まず、
1.date=new Date(document.lastModified);と
2.date=new Date();では、
getYear()の返す値が、異なることに気が付きました。
2では、NNとIE4以下では1999年までは−差分
       IE5以上−2000
1では、0を返すブラウザがあります。

従い、私は以下のようにしました。

<SCRIPT LANGUAGE="JavaScript">
<!--

var md = new Date(document.lastModified);
var ywk = md.getYear();
if ((md.getYear() <= 99) && (md.getYear() >= 0 )){
                  ywk =  md.getYear() + 2000
          };
if ((md.getYear() <= 1999) && (md.getYear() >= 100)){
                  ywk =  md.getYear() + 1900
          };
var Lupymd = '<font size=3>最終更新日:' + ywk.toString()
+ '.' + (md.getMonth()+1).toString() + '.'
+  (md.getDate()).toString() + '</font>';
document.write(Lupymd);
//--最終更新日自動表示2000.1.5-->

ma3ki 2000/01/05(水) 11:19:45
自動更新日を正しく表示するには-
私が、行った解決策を参考になればと思い、投稿します。
まず、
1.date=new Date(document.lastModified);と
2.date=new Date();では、
getYear()の返す値が、異なることに気が付きました。
2では、NNとIE4以下では1999年までは−差分
       IE5以上−2000
1では、0を返すブラウザがあります。

従い、私は以下のようにしました。

<SCRIPT LANGUAGE="JavaScript">
<!--

var md = new Date(document.lastModified);
var ywk = md.getYear();
if ((md.getYear() <= 99) && (md.getYear() >= 0 )){
                  ywk =  md.getYear() + 2000
          };
if ((md.getYear() <= 1999) && (md.getYear() >= 100)){
                  ywk =  md.getYear() + 1900
          };
var Lupymd = '<font size=3>最終更新日:' + ywk.toString()
+ '.' + (md.getMonth()+1).toString() + '.'
+  (md.getDate()).toString() + '</font>';
document.write(Lupymd);
//--最終更新日自動表示2000.1.5-->

shin' 2000/01/05(水) 20:39:44
>shin'さんお答えいただいてありがとうございます
>でもうまく行きませんでした^^;;なぜかエラーが出て^^;;

おそくなりましたが動かなくてすいません。
やはり投稿するときはテストしてから書くようにしなくては。

[上に] [前に] [次に]