• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGI「Key Search」日付だけ表示したい)

CGI「Key Search」日付の表示方法

このQ&Aのポイント
  • KentWebさんのサイト内検索CGI「Key Search」について、日付の表示方法を変更したいです。
  • 現在、日付が「日付 : 2014/05/27(Tue) 06:17:11」と時間まで表示されていますが、日付だけに表示する方法を教えてください。
  • 「ksearch.cgi」の!date!の部分を変更してみましたが、更新した日付になりません。どのようにしたら日付だけが表示されるようになるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

$tmp =~ s/!date!/&date($time)/eg; では、テンプレートに !date!という キーワードが来た時に &date($time) で、 date()サブルーチンを 実行しているので init.cgiの中にある sub date()の 中身を修正することになります。 ただし、&date(~)は、他にもログの書き出しなどに使われているようなので、 これ自体を変更してしまうと 不具合が発生する可能性があるので 別のサブルーチンを作るか、sub date()に任意引数を追加して書式を切り替えるかです。 簡単になら $tmp =~ s/!date!/&date($time)/eg; を $tmp =~ s/!date!/&date2($time)/eg; みたいに呼び出すサブルーチン名を変更して、そのサブルーチンを新規に作ればよいです。 「2014/05/27(Tue)」 みたいにしたいなら、 sub date2 { my $time = shift; # 曜日 my @week = qw|Sun Mon Tue Wed Thu Fri Sat|; # フォーマット my ($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime($time))[0..6]; sprintf("%04d/%02d/%02d(%s)",$year+1900,$mon+1,$mday,$week[$wday]); } て感じです。 #ちなみに、@weekの宣言を日 月 火 …にして、曜日を日本語にすることもできるでしょうけど #サイトの文字コードに合わせたコード変換処理を通さないと 文字化けするかもしれません。

CRAFT05
質問者

お礼

init.cgiをいじるんでしたか…。 教えていただいたとおりにやってみたらできました!ありがとうございます!! あと@weekの宣言を日 月 火 …にしても文字化けは起こりませんでした!

関連するQ&A

専門家に質問してみよう