2011-11-14 23 views
5

Zend_Date datetimesが同じ日にあるかどうかチェックしたいと思います。どうやってやるの?2つの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'; 
} 

も追記でComparing Dates with Zend Date

に関する章を参照してください、私は強くあなたが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'; 
} 

EDIT
あなただけ

を行うことが同じ日だかどうかを比較したい場合は
$date1->compareDate($date2) 
+0

正確に私が探していたもの( 'compare()'と 'equals()'のみが-AFAIK-月、完全な日付部分ではありません)。ありがとう! – Benjamin

+0

申し訳ありませんが、実際には日付(+月+年)ではなく、その日だけを比較していることに気づいた上で、回答を受け入れたタグを解除する必要がありました。次の月の同じ日も真実を返しました。 – Benjamin

+1

@Benjamin errrmもちろん、あなたは**同じ日**ではなく**同じ日**を求めています。あなたが同じ日付をしたいのなら '$ date1-> compareDate($ date2)' – Gordon

関連する問題