結果は、比較可能だった。
試したPHPのコード
<?php
//日時を表わす文字列データ
$date1 = '2000-01-01 01:02:03';
$date2 = '2010-12-31 12:34:56';
$now = date('Y-m-d H:i:s');
//データ型の確認
echo $date1 ."=". gettype($date1);
echo $date2 ."=". gettype($date2);
echo $now ."=". gettype($now);
echo "($now < $date1) =". gettype($now < $date1);
//比較
if ($now < $date1) {
echo "OK ($now < $date1)";
} else {
echo "NG ($now < $date1)";
}
if ($now < $date2) {
echo "OK ($now < $date2)";
} else {
echo "NG ($now < $date2)";
}
?>
実行結果
2000-01-01 01:02:03=string
2010-12-31 12:34:56=string
2009-09-24 14:00:00=string
(2009-09-24 14:00:00 < 2000-01-01 01:02:03) =boolean
NG (2009-09-24 14:00:00 < 2000-01-01 01:02:03)
OK (2009-09-24 14:00:00 < 2010-12-31 12:34:56)
・日時を表わす文字列は、string型だった。
・文字列を比較した結果は、boolean型だった。
つまり、PHPの処理系では、文字列を比較できるようになっていた。
日付を表わす文字列をUNIXタイムスタンプに変換して、大小を比較しないといけないかな?と思ったが、変換不要。
文字列のままでも、ASCIIコードの大小を比較すれば、そのまま日時の大小と一致している。
(参考)
ささら庵 - PHPのTIPS :: データ型の確認
変数や定数のデータ型名は、gettype関数で取得できます。
PHP: gettype - Manual
gettype ― 変数の型を取得する
Amazonで発売日が未来の商品(=未発売、予約受付中)は、本日の日付と比較して、はじくことができるな。
- 関連記事
-
- 祝!1万部超え『PHP逆引きレシピ』プレゼントキャンペーン
- CodeIgniterをHMVCでモジュール化
- PHPで文字コードをSJISからUTF8に変換する方法
- PHPで配列の重複を削除する方法
- Fatal error: Allowed memory size of 16777216 bytes exhausted
- PHPのstrlen関数で全角文字が3バイトになる件
- PHPでファイル一括削除
- PHPで日時の大小比較
- CodeIgniter 1.7.1 日本語化パック
- AmazonのASINで、36進数を10進数へ変換
- PHPの正規表現
- MatchBox for CodeIgniter 使い方
- PHPでディレクトリの容量を計算する方法
- CodeIgniterで作られたwiki
- MatchBox for CodeIgniter 和訳