西暦表示を2000年にするには
[上に]
[前に]
[次に]
弥生
2000/01/01(土) 08:17:43
私のHPで使用しているCGIですが、1つだけ2000年の表示にならなかったものがあります。
100年になってしまいました。
$Date = sprintf( "%d/%02d/%02d %02d:%02d:%02d", grep( ++$i==2?++$_:1, reverse((localtime time)[0..5]) ) );
この部分でよろしいんでしょうか?
よろしくお願いします。
B-Cus
2000/01/01(土) 10:46:00
技巧に凝ったつもりかもしれんけど、わかりにくいだけのコードだなぁ。
この作者の流儀でいくなら
sprintf("%d/%02d/%02d %02d:%02d:%02d",
grep {$i==0?$_+=1900:0;++$i==2?++$_:1} reverse((localtime time)[0..5]));
ですけど、素直に
($sec,$min,$hour,$day,$mon,$year) = localtime(time);
$Date = sprintf("%d/%02d/%02d %02d:%02d:%02d",
$year+1900,$mon+1,$day,$hour,$min,$sec);
とした方がいいでしょう。
弥生
2000/01/01(土) 15:55:09
[[解決]]
どうもありがとうございました。
無事に2000年表示になりました。
助かりました。
mm
2000/01/01(土) 20:57:59
>技巧に凝ったつもりかもしれんけど、わかりにくいだけのコードだなぁ。
こんなコードを書くのは私だけかな…?(笑い)
私の流儀でいくなら
$Date = sprintf( "%d/%02d/%02d %02d:%02d:%02d",
grep( ++$i==1?$_+=1900:$i==2?++$_:1, reverse((localtime time)[0..5]) ) );
下2桁に拘るなら、
$Date = sprintf( "%02d/%02d/%02d %02d:%02d:%02d",
grep( ++$i==1?$_=~s/\d*(\d\d)/$1/:$i==2?++$_:1, reverse((localtime time)[0..5]) ) );
ということで、100よりは2000の方が見やすそうなので、更新しました。
http://www2s.biglobe.ne.jp/~cru/library/zddbbs/lq.html
弥生
2000/01/02(日) 00:11:22
制作者の方ですね?
そちらで聞くべきなんですが、お答えしていただけないだろうと思いまして。
ついでに申しますと、findmod.cgiとこれは使ってませんが、count.cgiも100年になります。
B-Cusさんの解答を参考にして訂正しました。
どれも自分で確認するだけなので、支障はありませんが。
mm
2000/01/02(日) 02:20:38
>ついでに申しますと、findmod.cgiとこれは使ってませんが、count.cgiも100年になります。
ご指摘ありがとうございます。また、更新の機会にでも直すようにします。
[上に]
[前に]
[次に]