PHP 5.2.8 で 2 つの DateTime オブジェクトを比較するにはどうすればよいですか? 質問する

PHP 5.2.8 で 2 つの DateTime オブジェクトを比較するにはどうすればよいですか? 質問する

PHP のドキュメントを見ると、オブジェクトの次の 2 つのメソッドのDateTime両方が問題を解決できるようです。

これらの方法は両方とも、ドコバージョン5.3以上で利用可能であると書かれています(そして、当然ながら、それらを呼び出そうとすると、存在しないことがわかります)。5.2.8の特定のドキュメントが見つからないので、私のバージョンに同等のメソッドがあるかどうかはわかりません。グーグルで検索問題を調べて、さまざまな解決策を見つけましたが、どれも私の非常に単純な要件を満たしていませんでした。

  • 2 つの DateTime オブジェクトを比較するにはどうすればよいですか?
  • 以前の PHP バージョンのドキュメントはどこにありますか? 具体的にはバージョン 5.2.8 ですか?

コンテキストとして、次のコードがあります。

$st_dt = new DateTime(verifyParam ('start_date'));
$end_dt = new DateTime(verifyParam ('end_date'));

// is the end date more ancient than the start date?
if ($end_dt < $start_dt) 

どうやらこの関数には比較演算子がないようです。

編集

どうやら私の仮定は完全に間違っていたようです (これをとても効果的に説明してくれた Milen に感謝します)。比較演算子があり、問題なく動作します。時々、コンパイラが本当に恋しくなります。バグは上記のコードにありますが、私よりもずっと早く見つけられると思います :)。

ベストアンサー1

以下は、DateTime クラスに比較演算子があることを確認できるようです。

dev:~# php
<?php
date_default_timezone_set('Europe/London');

$d1 = new DateTime('2008-08-03 14:52:10');
$d2 = new DateTime('2008-01-03 11:11:10');
var_dump($d1 == $d2);
var_dump($d1 > $d2);
var_dump($d1 < $d2);
?>
bool(false)
bool(true)
bool(false)
dev:~# php -v
PHP 5.2.6-1+lenny3 with Suhosin-Patch 0.9.6.2 (cli) (built: Apr 26 2009 20:09:03)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
dev:~#

おすすめ記事