2011-11-14 2 views
5

Zend_Date datetimes가 같은 날에 있는지 확인하고 싶습니다. 어떻게해야합니까?두 Zend_Date 객체의 날짜 부분을 비교하는 방법은 무엇입니까?

$date1 = new Zend_Date('2011-11-14 10:45:00'); 
$date2 = new Zend_Date('2011-11-14 19:15:00'); 
+0

같은 날, 월요일, 화요일 등 ... 또는 같은 날짜, 시간 제외? 나는 Zend에게 비교 방법이있다. http://framework.zend.com/manual/en/zend.date.basic.html을 사용하면 원하는 형식으로 추출 할 수 있습니다. – Matt

+0

가능한 혼란을 가져 주어서 죄송합니다. 동일한 날짜를 말하며, 시간을 제외하고는 같은 요일을 의미하지 않습니다! – Benjamin

+0

내가 예제에서 생각한 것, 그냥 확인하는 것. 또한 당신이 필요로하는 상수의 목록을 heres. http://framework.zend.com/manual/en/zend.date.constants.html – Matt

답변

14
$date1 = new Zend_Date('2011-11-14 10:45:00'); 
$date2 = new Zend_Date('2011-11-14 19:15:00'); 
if ($date1->compareDay($date2) === 0) { 
    echo 'same day'; 
} 

또한 난 강력하게 당신이 Zend_Date에 대한 필요성이 있는지 확인하는 것이 좋습니다하는 (!) 참고에 Comparing Dates with Zend Date

에 대한 장을 참조하십시오. 그것이 ZF의 일부이기 때문에 그것을 사용하지 마십시오. 무엇 Zend_Date의 대부분은뿐만 아니라 네이티브 DateTime 편안하게보다 신속하고 달성 할 수 않습니다 : 댓글 후

$date1 = new DateTime('2011-11-14 10:45:00'); 
$date2 = new DateTime('2011-11-14 19:15:00'); 
if ($date1->diff($date2)->days === 0) { 
    echo 'same day'; 
} 

편집
그냥

을이 같은 날짜의 여부를 비교하려는 경우
$date1->compareDate($date2) 
+0

정확하게 (compare()와 equals()를 찾고있는 것은 -AFAIK 일뿐입니다. 전체 날짜 부분이 아닌 월). 감사! – Benjamin

+0

죄송합니다. 실제로 답변은 날짜 (+ 월 + 연도)가 아닌 실제로 날짜 만 비교한다는 사실을 알게 된 후 허용 된대로 태그를 해제해야했습니다. 같은 달 다음 달에도 마찬가지였습니다. – Benjamin

+1

@Benjamin errrm 물론 ** 같은 날짜 **가 아닌 ** 같은 날 **을 요청했기 때문에 가능합니다. 같은 날짜를 원한다면 그냥'$ date1-> compareDate ($ date2)' – Gordon

관련 문제