apacheログ集計プログラムを作っています。
全体の流れとしては、ログを指定したテキストファイルに書き出し、
それを読み込み、適切な形に直し、HTMLテーブルにいれて表示、という感じです。
その中の適切な形に直すところなのですが、
select sysdate,
to_char(add_months(to_date($yearmonth,'YYYYMM'),-1),'YYYYMM') as LAST_MONTH,
to_char(add_months(to_date($yearmonth,'YYYYMM'),+1),'YYYYMM') as NEXT_MONTH
from テーブル名
で200812や
200901といった日付をとってきています。
(データはしっかり入ってきます。)
このデータを利用し、
$last_monthには200812
$next_monthには200901のように入っていると仮定し、
リンクを作りますと、
# 先月のリンク
my $href_last_month = undef;
if ($last_month) {
my $last_month_year = substr($last_month,0,4);
my $last_month_month = substr($last_month,4,2);
$href_last_month = qq(<a href="$THIS?year=$last_month_year&month=$last_month_month"><<</a>);
}
# 来月のリンク
my $href_next_month = undef;
if (($next_month) && ($next_month <= $thismonth)) {
my $next_month_year = substr($next_month,0,4);
my $next_month_month = substr($next_month,4,2);
$href_next_month = qq(<a href="$THIS?year=$next_month_year&month=$next_month_month">>></a>);
}
のようになりました。
しかし、これをブラウザで表示させても、
先月(=200811へのリンク)へのリンクは表示されますが、
来月(=200801へのリンク)が表示されません。
200812(当月、今いる画面)に
#来月のリンク部分 で+1をしても、200813となってしまい、
エラーになるからだと思います。
どなたか、200812の画面で、
今表示されない200901へのリンクボタン=来月へのリンクボタンを表示できるようにするには
どうしたらいいか教えてくださいませ。
ちなみに200812や200901などは、自動でとってきており、
一番はじめのindex.cgiの画面には必ず当月がとれてきます(今日index.cgiをアクセスすれば、200901のログ集計結果ページが出ます。
このとき、200902はまだ訪れておりませんから、来月へのリンクボタン>>は表示されません。
先月への<<のみ表示されます、先月へは問題なくリンクできます。
13月を1月としてくれる、select文でのadd_month関数を使っているのに。。。
初心者なものでここでギブです。。お助けください。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
正直いって「# 来月のリンク部分」にある
if (($next_month) && ($next_month <= $thismonth))
という条件の意味 (特に後ろのところ) が分からんのだけど, まあ基本的には同じですね>#2.
一度「年」と「月」をわけて「月」をインクリメントする. で, 「月」が 13になったら「年」をインクリメントして「月」を 1に戻す, と.
No.1
- 回答日時:
VBでしょうか。
長らく使ってないので、書けませんが、ロジック的には、
200812を日付型にして+1 すれば 200901 になると思います。
あるいは、12+1 で 12を超えたら 1 にすれば yearを+1してmonthを1にすればよいだけのことではないかと。
イメージとしては以下のような感じでしょうか。
if (next_month>12){
next_month=1;
next_year=next_year+1;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Visual Basic(VBA) ExcelのVBAでシフト表を作っていますが、バグが出て困っています 2 2022/09/13 11:33
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Visual Basic(VBA) 今日の日付が過ぎたらその行を削除したい 1 2023/04/01 20:06
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
- 英語 "this day"が当日か今日を表すのかの使い分け方等について 5 2023/08/08 14:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソースの詳細を教えてください。
-
Cookieの有効期限について
-
関数について
-
Schemeのプログラミング うる...
-
PHPのstrtotimeのようなものあ...
-
日付の比較について
-
先月(YYYYMM)の生成方法
-
perl Windows 7でファイルの衝...
-
「型が一致しません」のエラー...
-
うるう年の出し方
-
Application.ScreenUpdating = ...
-
formで特定のinputを送信しない...
-
プルダウンメニューがプルアップに
-
セレクトメニューで2つの項目...
-
Python - Excel で Webからデー...
-
16進の10進変換について
-
スカラー変数に処理を入れる
-
JSONで文字列が長い時
-
<python>数字あてゲーム
-
ACCESS テキストボックスを隙...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付の差分の求め方(日、分)
-
1桁の日付に0を付ける
-
Perlでsprintf("%02d",$month)...
-
2つの日付・時間の差分を求め...
-
日齢計算プログラム
-
a shower.
-
Perlの日付の比較に関して
-
前日の日付取得するには?
-
サマータイムの判定について
-
pythonのプログラミングについ...
-
時間の計算について
-
VBAでオーバーフローが出て困っ...
-
当日の日付をプルダウンメニュ...
-
「型が一致しません」のエラー...
-
perlでcheckboxがうまく整理で...
-
Schemeのプログラミング うる...
-
perl ハノイの塔の解に順番付け...
-
Perlでテキストファイルの読み込み
-
このソースがコンパイルエラー...
-
PerlからMysqlに接続してデータ...
おすすめ情報