KENT-WEB サポートコーナー 過去ログ [ 0399 ]


記事No: 8526
投稿日: 2011/06/06(Mon) 18:21:42
タイトルYY-BOARDの投稿日時を日本語表記に
ID情報: hotachan
投稿者: hotaru
URLhttp://www.happytalkbbs.net/

こんにちは。先日はCherry Counterの件ありがとうございました。

実は、YY-BOARDですが、投稿日時はデフォルトでは、「2006/10/05(Thu) 10:51」の様になっています。これを・・・

「2006/10/05(木) 10:51」

または

「2006/10/05 10:51」

・・・の様な形式に変えたいのですが、どうしたらいいでしょうか?

Perlの本やウェブで見つけた情報を基に書き換えても、エラーになるか、希望通りの表記にたどり着けず、どうもうまく行きません。もし上記の表記方法を実現する方法がありましたら、ぜひご教示下さい。

HTMLとCSSは素人ながら、一通りわかるのですが、Perlはほとんど分かりません。たぶん初歩的なレベルから分かっていません。もし私にも分かる様にお教えいただければ幸いです。何卒よろしくお願い致します。


記事No: 8527
投稿日: 2011/06/06(Mon) 20:24:32
タイトルRe: YY-BOARDの投稿日時を日本語表記に
ID情報: hirayama
投稿者: 平山

regist.cgi 479行目あたり
my @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');

my @week = ('日','月','火','水','木','金','土');
と書き換えるといいと思います。

曜日を表示しない場合は、その下の482〜483行目を
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d",
$year+1900,$mon+1,$mday,$week[$wday],$hour,$min);
から
$date = sprintf("%04d/%02d/%02d %02d:%02d",
$year+1900,$mon+1,$mday,$hour,$min);
のように変えればいいと思います。


記事No: 8528
投稿日: 2011/06/06(Mon) 21:42:00
タイトルRe^2: YY-BOARDの投稿日時を日本語表記に
ID情報: hotachan
投稿者: hotaru
URLhttp://www.happytalkbbs.net/

> regist.cgi 479行目あたり
> my @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
> を
> my @week = ('日','月','火','水','木','金','土');
> と書き換えるといいと思います。
>
> 曜日を表示しない場合は、その下の482〜483行目を
> $date = sprintf("%04d/%02d/%02d(%s) %02d:%02d",
> $year+1900,$mon+1,$mday,$week[$wday],$hour,$min);
> から
> $date = sprintf("%04d/%02d/%02d %02d:%02d",
> $year+1900,$mon+1,$mday,$hour,$min);
> のように変えればいいと思います。

早速のご回答、ありがとうございます。

見た感じ、まさにこの場所の様なのですが、やってみたところ、うまく行きません。どうも他に何かあるようです。バージョンは最新版の6.3なのですが、掲示板上に出てくる日付は、スクリプトを見ると、$datの様です。例えば、list_log_thread.plでは・・・

print qq|発言者: <b>$nam{$_}</b> 日時: $dat{$_} |;

・・・と言う具合になっています。

$datをそのまま$dateにしてもだめなようです。日時が丸ごと消えてしまいます。どこを書き換えればいいでしょうか?


記事No: 8529
投稿日: 2011/06/07(Tue) 01:22:33
タイトルRe^3: YY-BOARDの投稿日時を日本語表記に
ID情報: hirayama
投稿者: 平山

>見た感じ、まさにこの場所の様なのですが、やってみたところ、うまく行きません。どうも他に何かあるようです。バージョンは最新版の6.3なのですが、掲示板上に出てくる日付は、スクリプトを見ると、$datの様です。例えば、list_log_thread.plでは・・・

他にも修正しているところがあるということでしょうか。
だとしたら、一度オリジナルに戻してからやってみてはいかがでしょうか。

yybbsの場合、ログファイル(./data/log.cgi)に、日付を"2006/10/05(Thu) 10:51"形式で保存していますが、
先の修正はこれを"2006/10/05(木) 10:51"という形式に変えて保存するという変更です。
ログファイルにこの形式で保存されているなら、とりあえず修正には成功していると思います。

$datや$dat{$_} は、ブラウザ上で表示するために、保存したログファイルを読み込み、日付部分を取り出して保存する変数です。
この際、日付の文字列は$dateでなく、$datや$dat{$_}にしか入れられていないので、$dateに変えると当然消えてしまいます。
$datのままだと、どのように表示されるのでしょうか。


記事No: 8530
投稿日: 2011/06/07(Tue) 02:03:11
タイトルRe^4: YY-BOARDの投稿日時を日本語表記に
ID情報: hotachan
投稿者: hotaru
URLhttp://www.happytalkbbs.net/

> 他にも修正しているところがあるということでしょうか。
> だとしたら、一度オリジナルに戻してからやってみてはいかがでしょうか。
>
> yybbsの場合、ログファイル(./data/log.cgi)に、日付を"2006/10/05(Thu) 10:51"形式で保存していますが、
> 先の修正はこれを"2006/10/05(木) 10:51"という形式に変えて保存するという変更です。
> ログファイルにこの形式で保存されているなら、とりあえず修正には成功していると思います。
>
> $datや$dat{$_} は、ブラウザ上で表示するために、保存したログファイルを読み込み、日付部分を取り出して保存する変数です。
> この際、日付の文字列は$dateでなく、$datや$dat{$_}にしか入れられていないので、$dateに変えると当然消えてしまいます。
> $datのままだと、どのように表示されるのでしょうか。

ありがとうございます。やっと意味が分かりました。どうも仕組みが分かっていなかったみたいです。regist.cgiのファイルで決められた形式で投稿内容がログファイルに記録され、掲示板の画面ではそれを読み出しているということなんですね。すでに保存されているログが掲示板での表示上において変換されるものと勘違いしていました。しかし、こういう仕組みなので、今までのものはそのままで、新しく投稿されたものから変更されると言うことですね。

貴重な勉強ができ、本当にありがとうございました。おかげさまで「2011年6月7日(火)01:57」と言う形式も表示できるようになりました。


[検索ページ]