SSIで書き変わるサイトで最終更新時間を表示するには?

[上に] [前に] [次に]
まりぃ 1999/12/02(木) 15:47:28
ページを表示するたびにフリーホスティング会社の維持の為の広告が出ます。
アクセスされたときにそのSSIで書かれた部分に広告のHTMLが入るので
JavaScriptで最終更新日時を表示させてみると、常にアクセスした日時になってしまいます。

これをなんとか回避して自動的に最終更新日時を表示したいのですが、
どのようにしたらよいでしょうか?

ふじ 1999/12/02(木) 16:13:23
SSI使用時に最終更新日が取れないのは
http://japache.infoscience.co.jp/japanese_1_3/manual/misc/FAQ.html#ssi-part-ii
ここを見ていただくとして。

SSIは使えるのですよね?
ならば、
<!--#flastmod file="〜"-->

<!--#flastmod virtual="〜"-->
を使って、JavaScriptの変数にそれが埋め込まれるようにすれば
良いんじゃないでしょうか。

具体的には(ファイル名が index.html だとして)

<SCRIPT language="JavaScript">
<!--
<!--#config timefmt="%b %m, %Y %X"-->
dd = new Date("<!--#flastmod file="index.html"-->");
//-->
</SCRIPT>

とか。

ふじ 1999/12/02(木) 16:17:12
訂正。
><!--#config timefmt="%b %m, %Y %X"-->
<!--#config timefmt="%b %d, %Y %X"-->
です。

まりぃ 1999/12/03(金) 01:26:32
ごめんなさい、言われていることがよくわからないのですが、
表示させたい部分に
<SCRIPT language="JavaScript">
<!--
<!--#config timefmt="%b %m, %Y %X"-->
dd = new Date("<!--#flastmod file="index.html"-->");
//-->
</SCRIPT>
と書き込んでしまえばOKなのでしょうか?

ゆづ 1999/12/03(金) 02:15:47
私の知るとあるプロバイダでは「.htaccess」を置くと
JavaScriptのLastModifiedが正常に動作します。
中身は「AddType text/html html」とか
「AddType text/html shtml」とかで。ぜひ一度お試しあれ。

ふじ 1999/12/03(金) 02:35:32
まず、SSIは使用可能であることが前提ですけど。
# 使用可能なのですよね?

>表示させたい部分に
>(中略)
>と書き込んでしまえばOKなのでしょうか?
上記のだけだと、 dd という名前の日付型のオブジェクトが
作られるだけですので、あとはそこから年、月、日、時刻などを
取り出して表示するような JavaScript を書けばよろしいかと。

http://www.tohoho-web.com/js/date.htm
ここなどを参考に。

で、これだけじゃ何なので、
「最終更新:1999年12月3日 2時30分03秒」
という形式で表示するサンプルを以下に。
# これを記述するファイルのファイル名が index.html だとして、

<HTML>
<BODY>
<SCRIPT language="JavaScript">
<!--
<!--#config timefmt="%b %m, %Y %X"-->
dd = new Date("<!--#flastmod file="index.html"-->");
document.write("最終更新 "+dd.getFullYear()+"年"+(dd.getMonth()+1)+"月"+dd.getDay()+"日");
document.write(dd.getHours() + ":" + dd.getMinutes() + ":" + dd.getSeconds());
//-->
</SCRIPT>
</BODY>
</HTML>

[E-Mail] [HomePage] 1999/12/03(金) 03:41:14
横からすいません。何故、JavaScript を組み合わせないとダメなのか
説明してもらえますか。

たとえば、私のページでは、

最終更新日:
<!--#config timefmt="%Y年%m月%d日"-->
<!--#flastmod file="index.html"-->

と timefmt に直接書いて、動いています。

ふじ 1999/12/03(金) 03:54:46
>何故、JavaScript を組み合わせないとダメなのか

最初に
>JavaScriptで最終更新日時を表示させてみると
ってあったので JavaScript で日付を使った処理でもしてるのかな?
と思ったので...
# 勘違いだったかも(^^;

単に、HTML中に
最終更新:1999年12月3日 2時30分03秒
って出力するだけなら、Sさんの方法で SSI のみでやった方が
単純ですし、分かりやすいです。

[E-Mail] [HomePage] 1999/12/03(金) 04:56:54
了解です>ふじさん

私のプロバイダでは、以前、JavaScriptのLastModified が使えま
せんでした。問い合わせると、そういう設定になっているとのこと。

仕方がないので、SSI を覚えて、上記のように書きました。
# それから半年後に設定変更され、LastModified は使えるように
# なりました。

そういうプロバイダもあるので、JavaScriptのLastModified を使
うなら、本当に使えるのかどうか問い合わせてみたらどうでしょう。
使えなかったら、SSI を検討しましょう。

まりぃ 1999/12/03(金) 14:43:03
Sさんworte:
>timefmt に直接書いて・・・
timefmtというファイルを作るんですか?
もうしこし詳しく教えていただけないでしょうか?

サショウ 1999/12/05(日) 00:07:15
僕も同じ問題で困っています。
Sさんの言う、SSIでの記述方法をもうちょっと詳しく知りたいです。

ふじ 1999/12/05(日) 01:13:16
SSIでの記述方法をもうちょっと詳しく知りたいです。
詳しくは、とほほさんの SSI 入門を見て頂くとして、
とりあえず何も考えずに

最終更新日:
<!--#config timefmt="%Y年%m月%d日"-->
<!--#flastmod file="index.html"-->

ってファイルに書いて(index.html の部分はそれぞれのファイル名に変えて)
サーバに上げて(重要)ブラウザで見てみましょう。

[E-Mail] [HomePage] 1999/12/05(日) 01:16:21
ご指名のようなので、書き込みさせていただきます。

とりあえず、
http://www.tohoho-web.com/wwwssi.htm#CongifTimefmt
は読んでいただいているとして話を進めます。

SSI はサーバーがクライアントにファイルを送る前に処理をしてくれる
方法です。SSI が動くように設定してあると仮定します。
最終更新日:
<!--#config timefmt="%Y年%m月%d日"-->
<!--#flastmod file="index.shtml"-->
とindex.shtml の中に書いて、サーバに index.shtml をアップし
ておくとおくと、閲覧者が受け取った index.shtml (のソース)に
は、「最終更新日:1999年12月31日」と書かれている筈です。

この、「年」とか「月」を直接上記のように config timefmt に
書けば、自由自在な表現ができます。

他の例もあげます。
現在時刻:<!--#config timefmt="%p%I時%M分"--><!--#echo var="DATE_LOCAL"-->
と、index.shtml に書いておくと、閲覧者に送られる index.shtml
のソースには、「現在時刻:pm04時30分」と書かれています。

config timefmt はこのように使います。

これらの実際の使用例は、私のページにあります。

まりぃ 1999/12/05(日) 02:29:38
なるほど、記述&動作確認は出来たのですが、海外サーバーなどの時の時差修正はどのようにしたらなおりますか?

Kan-chan [E-Mail] [HomePage] 2000/01/07(金) 01:07:37
Perlで作ったSSIスクリプトが動作可能なら、(手前味噌ですが)こんなプログラムがあります。
http://kan-chan.stbbs.net/download/cgi/ftime.htm

これならちゃんと海外サーバの時差修正もできますし、最新×日以内の日付だけ色を変えるなんてこともできます。

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