CGI-BBS > アクセスカウンタ > SSI式カウンタ > 日付が変わって停止


カレッヂ
カレッヂ


質問者 コウ  投稿日 3/14(水) 00:43:21
はじめまして。
分かる方おられましたらご解答お願いします。
2つ質問があります。

昨日、ログアナライザを設置して動いていたのですが、
日付が変わった時から、LOG NOT FOUNDになってしまいます。
http://outlook-express.virtualave.net/analyze/analyze.cgi?Today
ここです。

それと、サーバーが外国なので17時間送れていました。
そこで、
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time+17*60*60);
としましたが、ズレは直りませんでした。


宜しくお願い致します。

回答者 いのちゃん  [削除]  投稿日 3/14(水) 21:42:44
>($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime
>(time+17*60*60);
>としましたが、ズレは直りませんでした。



25: $buffer = $ENV{'QUERY_STRING'};
26:
27: if ($buffer =~ /Yesterday/i) {
28:
29:        ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime
30: (time - 24*60*60);
31: }
32: elsif ($buffer =~ /Today/i) {
33:
34: ec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
35: }

上記Item 30: (time - 24*60*60); (オリジナル)
この時差が+17であれば
-24+17=-7となりますがこれはアメリカの西海岸の時間帯ですが日本より17時間の
時差があります。

従って、(time - 7*60*60);
とならないでしょうか?まったくの推量ですが。
回答者 おおがみ  [削除]  投稿日 3/16(金) 16:54:20
localtime 関数を使っているところが何ヶ所かあります。
analyze.cgiで2ヶ所(オリジナルソースの29行目と33行目)、
log.plで2ヶ所(オリジナルソースの12行目と16行目)。

これらの全てに時差の補正をしてみてください。
それでうまくいくと思います。

質問者 コウ  [削除]  投稿日 3/18(日) 00:37:24
お二方とも解答ありがとうございます。
ご指摘の通り4ヶ所に17を足したところうまくいきました。
本当にありがとうございました。

このページは終了したので返信(回答)は書きこめません

Web裏技