2011-09-01 6 views
0

OOP의 날짜 비교 방법을 어떻게 선호합니까? 당신에 대해 어떻게 생각하십니까 :PHP 개체 지향 스타일의 날짜 비교

$date1 = new Date(); 
... 
$date2 = new Date(); 

if ($date1 > $date2) { 
    ... 
} 

strtotime 등등과 같은 것을 넣지 마십시오. OOP 만 입력하십시오.

+0

글쎄, 그것은, 당신은 비교하려는 작업에하지 않습니다 달려? – alexn

+0
+0

@alexn 예. 나는 날짜를 비교하고 싶다. – zapadlo

답변

3

PHP DateTime 객체를 사용하는 경우 표준 비교 연산자를 사용하여 날짜를 비교할 수 있습니다. 자세한 정보 및 예는 DateTime::diff manual page을 참조하십시오.

다음은 매뉴얼에서 예제 # 2 :

$date1 = new DateTime("now"); 
$date2 = new DateTime("tomorrow"); 

var_dump($date1 == $date2); 
var_dump($date1 < $date2); 
var_dump($date1 > $date2); 
+0

이것은 PHP 5.2.2 이상에서만 사용 가능합니다. – AlexV

+0

매뉴얼에는 PHP 5.3.0이 나와 있지만, 2 년이 넘은 이후로는 적어도 지원되는 버전도 있습니다 (http://en.wikipedia.org/wiki/Php#Release_history). – feeela

+0

DateTime :: diff는 음수 일 수없는 DateInterval을 반환하므로 어떤 날짜가 더 큰지 결코 알 수 없습니다. – zapadlo

0

Date 경우는 내부 DateTime 클래스 있었어야했는데, 코드가 절대적으로 괜찮습니다. 그러나 Date이 사용자 지정 클래스 인 경우 코드가 예상대로 작동하지 않습니다. 다른 프로그래밍 언어와 달리 PHP는 코드가 작동하는 데 필요한 연산자 오버로딩을 허용하지 않습니다. PHP가 $date1$date2을 비교하는 방법을 알 수 없으며 어느 쪽이 더 큰지를 결정할 수 있기 때문에 클래스의 인스턴스에서 비교 연산자와 함께 작동하는 방법을 PHP에 알려주는 것이 필요합니다.

당신은 그러나 클래스에 대한 몇 가지 비교 방법을 정의 할 수 있습니다 ...

$date1->isLargerThan($date2);