「2011/08/01(日)」という文字列が現在の時間より過去か未来かの
判断をしたいと思います。

PHPだと、

$yukou_time = strtotime("2011/08/01(日)");
$now_time = time();
if( $yukou_time > $now_time )

という感じでできたのですが、perlの場合、PHPのstrtotimeのような
ものを見つけることができません。
お手数ですが、このような機能がありましたらおしえてください。

よろしくお願いいたします。

A 回答 (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);

この回答への補足

ありがとうございます。

my ($year, $mon, $mday) = ("2011/08/01" =~ /(\d{4})\/(\d{1,2})\/(\d{1,2})/);

教えて頂いたコードだと日付がうまく取れませんでした。
カッコをつけたら日付が取れましたが、これでよいのでしょうか?

補足日時:2009/05/14 15:42
    • good
    • 0

> my ($year, $mon, $mday) = ("2011/08/01" =~ /(\d{4})\/(\d{1,2})\/(\d{1,2})/);


> 教えて頂いたコードだと日付がうまく取れませんでした。
> カッコをつけたら日付が取れましたが、これでよいのでしょうか?

すみません、そらで書いたコードなので間違えてました。これで問題ないです。
timelocalはlocaltimeの逆の関数なので、月は0~11になるため、1引く必要がある点だけ注意してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。よくわかりました。

お礼日時:2009/05/15 10:30

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


人気Q&Aランキング

おすすめ情報