« ax+by | メイン | 編集画面にDecodeボタンを »

2004年09月14日

短縮形での曜日表示

日付のフォーマットを調べてみた。例えば,2004年09月14日(火)のように出力させたいとする。年号は,%Y, 月は%m, 日は%dとすればよい。ところが,曜日の短縮形がうまくでない。%aで良いはずなのだが記号らしき変なものがでるだけだ。%Aとすれば一応火曜日ときちんと出るので用は足りるのだが,ちょっとしゃくだ(笑)。きっと同じように感じる人がいると思って検索してみた。きゃんころ:MovableType曜日問題に原因を含めて詳しく書いてある。解決策も書いてあるので,ありがたくちょうだいすることにした。うちのUtil.pmでは,112行目あたりに当該のコードが書いてあるので,指示された3行を追加した。おかげさまで,日本語でも曜日の短縮形が表示されるようになった。

(2004年9月15日に追記)
念のためW3CのValidation Serviceに行ってみたら,WARNINGを出されてしまった。reference not terminated by REFC delimiter とか書いてある。どうも,曜日の出力の部分で #&xxxxxx がいけないらしい。セミコロンで終わるべし,と。やれやれ,きびしいですね!(苦笑)。Util.pmを修正して,最後にセミコロンを出力させるようにすれば良いのだろうか。しかし,Perlの文法を知らない(汗)。

Perl, 文字列の結合,というキーワードで検索してみた。ふーん,Perlって文字列の結合はドットで表すのか。プラスじゃないんだ。文の終わりにセミコロンが必要なことも知らなかった(やれやれ・・・)。何度かコンパイルエラーを出したが(だって変数は宣言しなくてもいいって書いてあったのに・・・くすん),なんとかセミコロンと結合させて出力させることができた。良かった良かった。

(更に追記)
もう一度,きゃんころさんの記事を読んでみると,何のことはない。7バイト拾ってくるところを8バイトに変更すれば,ちゃんとセミコロンまで出力されるではないか!ということで,たった一文字変更するだけでよかった。


if ($lang eq 'jp') {
$f{a} = substr $L->[0][$f{w}] || '', 0, 8;
}

投稿者 sukarabe : 2004年09月14日 19:15

トラックバック

このエントリーのトラックバックURL:
http://njet.oops.jp/cgi/mt/mt-tb-alt.cgi/354

コメント

コメントしてください

comment spam対策のため,名前とメールの入力が必須になっていますが,メールアドレスは公開されません。Web SiteのURLは任意です。Type Key IDをお持ちの方はType Keyをサイン・インしてくださってもいいです。




保存しますか?