/** * Verificar se o produto é novidade, comparando campos "NewsFromDate" e "NewsToDate" do produto. * * @author Julio Vedovatto * @uses Zend_Date * @param Mage_Catalog_Model_Product $_product * @throws Exception * @return boolean */ public function isProdutoNovidade(Mage_Catalog_Model_Product $_product) { $is_novidade = false; try { $locale = Mage::app()->getLocale(); if (!$_product instanceof Mage_Catalog_Model_Product) throw new Exception('Produto inválido'); // Pegar a data atual, pegando apenas a parte da data (sem comparação com hora) $now = $locale->date(null, 'yyyy-MM-dd', null, false); // Pegar datas de início e fim do produto $data_ini = $_product->getNewsFromDate(); $data_fim = $_product->getNewsToDate(); if (empty($data_ini) || empty($data_fim)) throw new Exception('NewsFromDate ou NewsToDate não foi preenchido.'); // Converter $data_ini e $data_fim p/ Zend_Date para comparação.Desabilitando o uso de timezone (já que vem sem horas do banco) $data_ini = $locale->date($data_ini, null, null, false); $data_fim = $locale->date($data_fim, null, null, false); $is_novidade = ($data_ini->isEarlier($now) | $data_ini->equals($now)) && ($data_fim->isLater($now) | $data_fim->equals($now)); } catch (Exception $err) { Mage::logException('Erro ao converter data para comparação. [Erro]: ' . $err->getMessage()); $is_novidade = false; } return $is_novidade; }