2011-11-14 13 views
5

Me gustaría comprobar si a Zend_Date las fechas están en el mismo día. ¿Cómo puedo hacer eso?¿Cómo se comparan las partes de fecha de dos objetos Zend_Date?

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

El mismo día que en, lunes, martes, etc. ... o en la misma fecha, excluyendo el tiempo? En cualquier caso, Zend tiene un método de comparación. http://framework.zend.com/manual/en/zend.date.basic.html, puede extraer el formato que desee. – Matt

+0

Disculpe la posible confusión, me refiero a la misma fecha, excluyendo el tiempo, * no * ¡el mismo día de la semana! – Benjamin

+0

tipo de lo que pensé en el ejemplo, solo asegurándome. También aquí hay una lista de constantes que podría necesitar. http://framework.zend.com/manual/en/zend.date.constants.html – Matt

Respuesta

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'; 
} 

Véase también el capítulo sobre Comparing Dates with Zend Date

En una nota, le animo fuertemente para verificar si usted tiene la necesidad de Zend_Date. No lo use solo porque es parte de ZF. La mayor parte de lo que Zend_Date qué se puede lograr más rápida y cómodamente con nativa DateTime así:

$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'; 
} 

EDITAR después de los comentarios
Si desea comparar si se trata de la misma fecha sólo lo hacen

$date1->compareDate($date2) 
+0

Exactamente lo que estaba buscando ('compare()' y 'equals()' solo pueden -FAIK- comparar el día de la mes, no la parte de fecha completa). ¡Gracias! – Benjamin

+0

Lo siento, tuve que eliminar la etiqueta de su respuesta como aceptada, después de notar que en realidad solo compara el día, no la fecha (+ mes + año). El mismo día el próximo mes también regresó verdadero. – Benjamin

+1

@Benjamin errrm, por supuesto, lo hace porque solicitó el ** mismo día **, no la ** misma fecha **. si quieres la misma fecha solo haz '$ date1-> compareDate ($ date2)' – Gordon

Cuestiones relacionadas