zend-frameworkzend-formzend-date

Zend Date -- day difference


I have the below line of codes

$day1 = new Zend_Date('2010-03-01', 'YYYY-mm-dd');
$day2 = new Zend_Date('2010-03-05', 'YYYY-mm-dd');
$dateDiff = $day2->getDate()->get(Zend_Date::TIMESTAMP) - $day1->getDate()->get(Zend_Date::TIMESTAMP);
$days = floor((($dateDiff / 60) / 60) / 24);
return  $days;  

this will return 4

But if gave

$day1 = new Zend_Date('2010-02-28', 'YYYY-mm-dd');
$day2 = new Zend_Date('2010-03-01', 'YYYY-mm-dd');
$dateDiff = $day2->getDate()->get(Zend_Date::TIMESTAMP) - $day1->getDate()->get(Zend_Date::TIMESTAMP);
$days = floor((($dateDiff / 60) / 60) / 24);
return  $days; 

it will return -27 .. how will i get right answer


Solution

  • $firstDay = new Zend_Date('2010-02-28', 'YYYY-MM-dd');
    $lastDay = new Zend_Date('2010-03-01', 'YYYY-MM-dd');
    $diff = $lastDay->sub($firstDay)->toValue();
    $days = ceil($diff/60/60/24) +1;
    

    return $days;

    this gives the right answer