• ベストアンサー

掲示板への書き込み時間

掲示板CGIについて質問です。 使おうとしているスクリプトはそのままアップロードすると書き込みした時間の表示が 「4/14 (Sun) 17:10」 のようになります。 これを 「2003 4/14 (日) 17:10:50」 のように年と秒まで加えたいのです。 それで後者のように表示される掲示板CGIを参考にしてみましたが、目立った違いはないように思え、どこをどう変更すれば年や秒まで表示されるようになるかわかりません。 思い当たる部分はこのあたりなのですが…。 ↓このように記述されています ************ $ENV{'TZ'} = "JST-9"; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year = sprintf("%02d",$year + 1900); $month = sprintf("%02d",$mon + 1); $mday = sprintf("%02d",$mday); if ( substr($month,0,1) == 0 ) { $month =~ s/0/ /; } if ( substr($mday,0,1) == 0 ) { $mday =~ s/0/ /; } $hour = sprintf("%02d",$hour); $min = sprintf("%02d",$min); $sec = sprintf("%02d",$sec); $youbi = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday]; $date_now = "$month/$mday ($youbi) $hour:$min"; ************ CGIに手を加えてレイアウトの変更くらいはいつもやっています。 もし書き換える方法がありましたら教えていただければと思います。 どうぞよろしくお願い致します。

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

  • ベストアンサー
  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.1

> $youbi = 'Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday]; から $youbi = ("日","月","火","水","木","金","土")[$wday]; >$date_now = "$month/$mday ($youbi) $hour:$min"; から $date_now = "$year $month/$mday ($youbi) $hour:$min:$sec"; にそれぞれ変更すれば可能だと思います。

touyou
質問者

お礼

大変お世話になりました。 この後、数時間格闘しておりましたら、No.2の方のお助けもありまして解決にいたりました。 望んでいた表示を得られました。 本当にありがとうございました。

touyou
質問者

補足

nightowlさま、ありがとうございます。 早速教えていただいたとおりに致しました。 すると始めのうちは年、秒、共にちゃんと表示されるようになりました。 しかし曜日が () とカラの状態で表示されてしまいました。 そしてしばらくするうちに、(CGI自体はその後触らずテスト書き込みをしていたら)今度は日付時刻とも表示すらしなくなってしまいました。 日付時刻の表示部分は何かサーバやブラウザの環境によって左右される特殊なものなんでしょうか。 ちょっとややこしいことになってしまい申し訳ありません。 これが書き直した後です↓ ******* $ENV{'TZ'} = "JST-9"; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year = sprintf("%02d",$year + 1900); $month = sprintf("%02d",$mon + 1); $mday = sprintf("%02d",$mday); if ( substr($month,0,1) == 0 ) { $month =~ s/0/ /; } if ( substr($mday,0,1) == 0 ) { $mday =~ s/0/ /; } $hour = sprintf("%02d",$hour); $min = sprintf("%02d",$min); $sec = sprintf("%02d",$sec); $youbi = ("日","月","火","水","木","金","土") [$wday]; $date_now = "$year/$month/$mday ($youbi) $hour:$min:$sec"; *******

その他の回答 (1)

noname#48234
noname#48234
回答No.2

こんばんは。 横やりを入れてすいません。 これでどうでしょうか? <書き換え前> $youbi = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday]; $date_now = "$month/$mday ($youbi) $hour:$min"; ↓ <書き換え後> @youbi = ('日','月','火','水','木','金','土') ; $date_now = "$year $month/$mday ($youbi[$wday]) $hour:$min:$sec";

touyou
質問者

お礼

ありがとうございました。 参考にさせていただいて丁寧に丁寧に書き直していった結果、無事思っていたとおりの表示になりました。 本当にお世話になりました!!

関連するQ&A