最終更新日

[新着] Webテンプレートを仮オープンしました



0   名前: sakana : 2006/09/09(土) 17:29  ID:O14TONQG
<script type="text/javascript">
<!--
var LastDate=new Date(document.lastModified); //最終更新日の生成
var L_Year=LastDate.getFullYear(); //4桁西暦を取得
var L_Month=LastDate.getMonth()+1; //月の取得、1月が"0"になるので1を足す
var L_Day=LastDate.getDate(); //日の取得

if(L_Month<10){L_Month="0"+L_Month;} //一桁の場合に前に"0"を付ける
if(L_Day<10){L_Day="0"+L_Day;}

with(document){
write("<span style='font-size:0.8em;color:#752c04;'>  LastModified:  </span>");
write("<span style='font-size:0.8em;color:#4f4f4f;'>");
write(L_Year+"年"+L_Month+"月"+L_Day+"日");
write("</span>");
}
//-->
上記、最終更新日を自動で更新するようにしたスクリプトですが、ネット上でWEBページをOPENすると 最終更新日が OPENした日付で更新されてしまいます。
ローカルでのファイルの更新の為に利用しようとしていたのですが、スクリプトの間違いを発見することが出来ず、スレッドを建てさせていただきました。
よろしく御願いします。

1   名前: Chip : 2006/09/09(土) 17:29  ID:iXTrKUp6
「lastModified」で検索してみると、それがあまりアテにできない情報だとわかります。
期待する値が採れないサーバではどうにもできないと思います。

2   名前: 牛若 : 2006/09/09(土) 17:29  ID:/.uez2Jn
スタンドアロンで使う分にはそのコードで問題はないと思いますが。
lastModifiedはサーバ上の最終更新日時を参照しています。サーバの種類または設定によ
っては、正しい値を返さない場合があります。古典的な問題です。
以前は、1970/1/1を返すとかタイムゾーンラグを返すとか、様々な問題が持ち上がり、
結局、lastModifiedはアテにならないという認識が広まっています。
私は手入力で入れています。

3   名前: sakana : 2006/09/09(土) 17:29  ID:O14TONQG
>Chipさん、牛若さん 、素早い対応感謝します。
このたびHPをUPするサーバを変更しましたので、以前は問題がなかったのに 何故?
私では、原因がわからずに困っていました。
サーバの環境に依存する場合が有るのですね、最終更新日の変更は たいした手間もかからないので、これからは手入力で更新するようにします。
御世話になりました。

一覧へ戻る