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

現在時刻との比較をするプログラムを作成した所、
2050年とかとの比較が正常に行われませんでした。
2038年問題が原因のようなのでPEARのCalcクラスを使用しようとしましたが、
現在時刻との比較方法が分かりませんでした。

そのため、どのように記述すればよいかご教示いただける方がいらっしゃいましたら、
宜しくお願いします。

なおPHPのバージョンは4.4.8です。

【ソースコード】
<?php
$time = time();
$comparison_date = "2050-02-03 10:20:30";
//$comparison_date = "2009-02-01 10:20:30";
//$comparison_date = "2009-03-01 10:20:30";

print "現在のタイムスタンプ = " . $time . "<br>";
print "比較対象のタイムスタンプ = " . strtotime($comparison_date) . "<br>";
print "<br>";

if (time() < strtotime($comparison_date)) {
print "比較対象は現在より未来です。";
} else {
print "比較対象は現在より過去です。";
}
?>

以上、よろしくお願いします。

A 回答 (1件)

比較するだけなら文字列で比較するのが手かも・・・。



<?
$time_str=date("Y-m-d H:i:s");
$comparison_date_str = "2050-02-03 10:20:30";
if ($time_str < $comparison_date_str) {
print "比較対象は現在より未来です。";
} else {
print "比較対象は現在より過去です。";
}
?>

実際のところPHP5.2以降では拡張した日付への対応が進んでいるようですね
    • good
    • 0
この回答へのお礼

ご教示いただいた記述を試させて頂いた所、意図した動作となりました。
文字列にして比較するという発想は思いつきませんでした。
PHPのバージョンアップは出来ない為、この方法を使用させていただこうと思います。
どうもありがとうございました。

お礼日時:2009/02/06 16:33

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