電子書籍の厳選無料作品が豊富!

CGI(perl)勉強中です。

2012年12月18日22時15分

のように文字列で記録されている時間があります。
(事情によりこの時刻は上記のような文字列型式でしか記録できません)

この時間が、現在時刻と比較し、何日経過しているかを表示させたいと思っています。

time 関数を使えば現在時刻の取得が可能ということは分かりました。
この現在時刻から上記の日時をマイナスすれば経過秒数が分かり、
これを日数に計算しなおせばできると思うのですが、
2012年12月18日22時15分をtime関数で取得した現在時刻と同じ型式に
変換させる方法が分かりません。

また、他によい計算方法があればよろしくお願いします。

A 回答 (1件)

まず、その日付から、数字のところだけ取り出すことはできますか?


正規表現なりsubstrなりで数字のところを抜きだせば、Date::Local::timelocal でtimeが返す値(エポック秒)を計算できます。
http://perldoc.perl.org/Time/Local.html

他に時刻操作に関するモジュールがいろいろとあります。CPAN等で検索するとよいでしょう。
例えば
http://perldoc.jp/docs/modules/Time-Piece-1.08/P …

ただ、これらのモジュールが日本語混りの文字列をうまく操作できるかは不明です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
かなり自分にとっては難易度高めですが、ヒントのキーワードを
いただいたので、それを調べることから始めてみたいと思います。

つまづきましたら別途具体的に再度質問させていただくことにします。
ありがとうございました。

お礼日時:2012/12/19 14:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!