- ベストアンサー
PHPのstrtotimeのようなものありますか?
「2011/08/01(日)」という文字列が現在の時間より過去か未来かの 判断をしたいと思います。 PHPだと、 $yukou_time = strtotime("2011/08/01(日)"); $now_time = time(); if( $yukou_time > $now_time ) という感じでできたのですが、perlの場合、PHPのstrtotimeのような ものを見つけることができません。 お手数ですが、このような機能がありましたらおしえてください。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
文字列からの変換はできませんが、timelocal で年月日→エポックの変換は可能です。 use Time::Local; my ($year, $mon, $mday) = ("2011/08/01(日)" =~ /\d{4}\/\d{1,2}\/\d{1,2}/); my $yukou_time = timelocal(0, 0, 0, $mday, $mon - 1, $year);
その他の回答 (1)
- mtaka2
- ベストアンサー率73% (867/1179)
回答No.2
> my ($year, $mon, $mday) = ("2011/08/01" =~ /(\d{4})\/(\d{1,2})\/(\d{1,2})/); > 教えて頂いたコードだと日付がうまく取れませんでした。 > カッコをつけたら日付が取れましたが、これでよいのでしょうか? すみません、そらで書いたコードなので間違えてました。これで問題ないです。 timelocalはlocaltimeの逆の関数なので、月は0~11になるため、1引く必要がある点だけ注意してください。
質問者
お礼
ありがとうございます。よくわかりました。
補足
ありがとうございます。 my ($year, $mon, $mday) = ("2011/08/01" =~ /(\d{4})\/(\d{1,2})\/(\d{1,2})/); 教えて頂いたコードだと日付がうまく取れませんでした。 カッコをつけたら日付が取れましたが、これでよいのでしょうか?