本日  昨日
 
11/22(Fri) 13:18

日付や時間の表示の仕方(SSI方式)

いろいろなページをサーフィンしていて、現在時刻やファイルの最終更新時間を表示 しているページを見たことがあるでしょう。これらの多くは、サーバ側の機能を利用したSSIというものを使っています。簡単にできますので是非トライしてみて下さい。
(注) 時刻はサーバ側の時刻になります。海外サーバを利用してる時は現地時刻が表示されます。

【SSI+JavaScriptによる現地時刻(海外)を日本時間に直す方法を下に紹介します】(2002.10.14)
(注1)スクリプト中の #config と #echo のかぎカッコ「<」「>」(4ヶ所)は、SSIを実行しないように全角で書いてます。ご利用の際は必ず半角に直して使ってください。
(注2)表示形式(document.write文の部分)は2つの内お好みの方を選択してください。

  • 世界標準時(DATE_GMT)を使う
    海外のサーバーを利用してる場合、世界標準時(GMT)を取得し、日本の時差9時間を補正すれば日本時間に変換することができます。日本は世界標準時から9時間(=9*60*60*1000ミリ秒)進んでいますので世界標準時dd.getTime()にプラスします。世界標準時を使う方法はサーバーが何処にあっても常に9時間プラスすればよいので便利です。
    <!--#config timefmt="%b %d, %Y %T"--> <script language="JavaScript"> <!-- dd = new Date("<!--#echo var="DATE_GMT"-->"); dd.setTime(dd.getTime() + 9*60*60*1000); document.write(dd); document.write("<br>"); week = new Array("日","月","火","水","木","金","土"); document.write((dd.getMonth()+1)+'/'+((dd.getDate() < 10) ? "0" : "") +dd.getDate()+'('+week[dd.getDay()]+')'+((dd.getHours() < 10) ? "0" : "") +dd.getHours()+':'+((dd.getMinutes() < 10) ? "0" : "")+dd.getMinutes()); //--> </script>
    上のスクリプトの実行結果です。
    上段が未フォーマット形式、下段は見易くフォーマットしたものです

  • ローカル時間(DATE_LOCAL)を使う場合(参考)
    米国東部時間(時差-5時間)の場合、日本は9+5=14時間(=14*60*60*1000ミリ秒)進んでいますので現地時間dd.getTime()にプラスします。米国西部時間など時差が異なる時はこの数字を変更します。
    <!--#config timefmt="%b %d, %Y %T"--> <script language="JavaScript"> <!-- dd = new Date("<!--#echo var="DATE_LOCAL"-->"); dd.setTime(dd.getTime() + 14*60*60*1000); document.write(dd); document.write("<br>"); week = new Array("日","月","火","水","木","金","土"); document.write((dd.getMonth()+1)+'/'+((dd.getDate() < 10) ? "0" : "") +dd.getDate()+'('+week[dd.getDay()]+')'+((dd.getHours() < 10) ? "0" : "") +dd.getHours()+':'+((dd.getMinutes() < 10) ? "0" : "")+dd.getMinutes()); //--> </script>
    上のスクリプトの実行結果です。DATE_LOCALは現地時間(サーバ@nifty:日本)ですので日本時間より14時間進んでいます
    上段が未フォーマット形式、下段は見易くフォーマットしたものです


時刻を表示させるには、時刻を表示したいファイル(例ではindex.htm)に赤色で書いた行を記述します。
------"index.htm"ファイル---------------------------------------------
<HTML><TITLE>.......</TITLE>
<BODY>
.....
....

<!--#config timefmt="%m/%d(%a) %H:%M"-->
現在時刻:<!--#echo var="DATE_LOCAL"-->
更新時刻:<!--#echo var="LAST_MODIFIED"-->

.....
....
</BODY></HTML>
----------------------------------------------------------------------

この例での、表示結果は
現在時刻:11/22(Fri) 13:18
更新時刻:05/04(Sun) 22:35
となります。

  • 1行目の<!--#config timefmt="%m/%d(%a) %H:%M"-->は、日付や時間を表示するときのフォーマットを指定します。これを設定していない場合は、次のようなメッセージで出力されます。

    Saturday,26-Jul-97 09:23:15 JST

  • 2行目の<!--#echo var="DATE_LOCAL"-->が、現在時刻を取得するSSIです。
  • 3行目の<!--#echo var="LAST_MODIFIED"-->が、ファイルの最終更新時刻を取得するSSIです。指定したファイルの最終更新日時を表示したい場合は、#flastmodコマンドを使います。

timefmt のフォーマット指定
フォーマット記号説明
%D月/日/年09/23/97
%T時:分:秒(24時間制)22:11:33
%r時:分:秒(12時間制)10:11:33
%R時:分(24時間制)22:11
%Y年(4桁)1997
%y年(2桁)00〜99
%B月(フルスペル)January〜December
%b or %h月(省略形)Jan〜Dec
%m月(2桁)01〜12
%d日(2桁)01〜31
%e日(ゼロなし)1〜31
%H時(24時間制)00〜23
%I時(12時間制)00〜11
%k時(ゼロなし24時間制)0〜23
%l時(ゼロなし12時間制)0〜11
%M分(2桁)00〜59
%S秒(2桁)00〜59
%A曜日(フルスペル)Sunday〜Saturday
%a曜日(省略形)Sun〜Sat
%p午前・午後AMまたはPM
%ZタイムゾーンGMT,JSTなど
%j1月1日からの日数0〜364
%w日曜日からの日数0〜6
%U第何週(日曜始まり)0〜51
%W第何週(月曜始まり)0〜51

 
 
©1997- Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ