• ベストアンサー

日時の表示の仕方

Perlで作られた掲示板の日時の表示が「2007/12/30(Sun) 20:55」となります。 これを12/30 20:55と短縮して表示させたいのですが、どのようにすればいいのでしょうか? substrと=~ s///g;を使って人に見られると恥ずかしいグチャグチャな書き方で強制的に目的の表示方法には出来るのですが、スマートな書き方ができません。よろしくお願いいたします。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

localtime なりで時刻データを取得してそれを元に表示しているのなら scalar で受けてその文字列を弄繰り回すよりは、文字列を作るところから 考え直すべきでしょう。 use POSIX qw(strftime); print strftime('%m/%d %H:%M', localtime); 実行結果 12/30 23:04 まあこの程度なら localtimeを配列で受けて自分で整形しても大した手間じゃありませんけどね。 @time = localtime; printf '%02d/%02d %02d:%02d', $time[4]+1, @time[3, 2, 1];

yuutoOK
質問者

お礼

有難うございます。初心者なためスクリプトの時間取得の部分を変更するというところまで頭が回りませんでしたが、挑戦してみましたところお蔭様で何とか出来ました。

その他の回答 (2)

  • Suzi
  • ベストアンサー率38% (130/334)
回答No.2

日付表示と言っても、いろいろな記述方法があり、任意な変数名が付けられているので、せめて、localtime(); 辺りの数行をお知らせしてくれた方が解決が早いと思いますが。

yuutoOK
質問者

お礼

有難うございます。スクリプトのタイム取得の部分をよく見直してみましたところ、何とか書き方が理解できましたので解決致しました。

回答No.1
yuutoOK
質問者

お礼

有難うございます。掲載されている方法を試しましたが、思い通りの表示にする事が出来ませんでした。 一応、以下のように適当なやり方でしたら表示されるのですが、これではやっぱり間違ったやり方でしょうか? $date=substr($date,5,20); $date =~ s/[A-Za-z\(\)]//g;

関連するQ&A