1. ホーム
  2. php

[解決済み] PHP 5.2.8で2つのDateTimeオブジェクトを比較するにはどうすればよいですか?

2022-03-25 13:33:34

質問

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に感謝します)。 比較演算子があり、ちゃんと動作することに感謝します。 時々、私は本当にコンパイラが恋しくなります。 バグは上のコードにありますが、私よりずっと早く見つけられると思います :).

解決方法は?

以下は、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:~#