I am using Magento to get product date fields’ values. Then i decided to use Zend_Date to handle that values because Magento returns dates in different formats (depending on the locale set).
But what i faced stunned me for a while. I got three dates, 12 Jul 2012 (let’s call it today), 2 Mar 2012 and 2 Sep 2012. And checking if today is later than each of others returns true for both dates. E. g. today is later than 2nd of March (which is true) is later that 2nd of September (which stunned me).
Here’s the proof from PhpStorm’s watches:

I got the dates as follows:
$productData['news_from'] = Mage::app()->getLocale()->date($productData['news_from']);
$productData['news_to'] = Mage::app()->getLocale()->date($productData['news_to']);
$_currentDate = Mage::app()->getLocale()->date();
What am i doing wrong???
Could it be that your dates aren’t parsed correctly from strings you receive from Mage? They seem to be not standard… try checking the UNIX timestamp for every value and see if its values tally with your source string dates.