インフォメーションBBS

[使い方] [タイトルのみ] [関連発言] [最新20発言] [過去ログ一覧]
1023 わかやま神 [RE] 2000/06/14 22:22 [修正]
RE:しつもんです。
#1022(スミコ氏)の書き込みを引用します:
>はじめまして。アクセスログのCGI版を使っているのですが、時刻が外国
>サーバのため15時間遅れてしまいます。どのように書き足したらよいの
>でしょうか?どうかお教えください。よろしくお願いします。

access3.cgiの中に時間表記を作成するサブルーチンがあります。

sub gmt_date {	#HTTPプロトコルで定義された標準的な時間表記を作る
  local($t) = @_;
  @wdays = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
  @month = ("Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
  ($sec, $min, $hour, $day, $mon, $year, $wday) = gmtime($t);
  return sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",
           $wdays[$wday], $day, $month[$mon], $year+1900, $hour, $min, $sec);
}

この中の

  ($sec, $min, $hour, $day, $mon, $year, $wday) = gmtime($t);

を

 ($sec, $min, $hour, $day, $mon, $year, $wday) = gmtime($t + 9 * 60 * 60);

として下さい。(黄色が該当行で赤色が追加部分です)

少々うんちくをば・・・

(15時間のずれって、なんかおかしい様な気がしますが・・・)
gmtime関数はグリニッジ標準時(世界標準時)を取得しますが、日本とは9時間(32400秒)のずれがあるはず。
$tの後ろの「+ 9 * 60 * 60」でグリニッジ標準時と日本標準時の9時間(32400秒)の時差を加算修正しています。
時間の誤差分の指定は秒で行って下さい。

1個のレスポンスが付いています:
1024 2000/06/14 22:57 RE2:しつもんです。 = スミコ

[トップページに戻る]管理人 : キャメル