Magento module personnalisé champ date d'enregistrement de la date à un jour avant la date sélectionnée

j'ai suivi les étapes sur ce lien pour ajouter un champ de date pour mon module personnalisé :

http://magentomechanic.blogspot.com/2010/01/to-add-custom-date-field-in-custom.html

Tout s'est bien passé, sauf que lorsque je sélectionne une date et d'enregistrer des configurations, il me renvoie la date d'un jour avant d'être sélectionné 🙁

Par Exemple :

Lorsque je sélectionne 25 Fév, 2012 et enregistrer , il vous permettra d'économiser et de retour 24 Fév, 2012.

Avis il a sauvé un jour avant 🙁

je reçois quand je print_r($model) dans l'admin contrôleur avant d'enregistrer:

[start_date] => 2012-01-24 16:00:00 //i set it to 25 but its saving 24
[end_date] => 2012-01-26 16:00:00  //i set it to 27 but .....
[status] => 1 [content] => asdasdadsd  
[created_time] => 2012-01-25 07:27:11 //it gives current date and it is O'rite
[update_time] => 2012-01-25 07:27:11 ) //it gives current date and it is O'rite

REMARQUE:

je l'écho de la date d'affichage et c'était tout ce que j'avais à dire qu'il n'y est pas de problème avec les données post,
dire côté client est claire pour tout bug, donc où réside le problème, c'est quand il est converti à enregistrer dans la base de données !!! Toute aide ???

Voici mon initiall code j'ai essayé :

if($data['start_date'] != NULL )
                {
                $date = Mage::app()->getLocale()->date($data['start_date'], Zend_Date::DATE_SHORT);
                $model->setStartDate($date->toString('YYYY-MM-dd HH:mm:ss'));
                }
                if($data['end_date'] != NULL)
                {
                $date1 = Mage::app()->getLocale()->date($data['end_date'], Zend_Date::DATE_SHORT);
                $model->setEndDate($date1->toString('YYYY-MM-dd HH:mm:ss'));
                }

ensuite, j'ai essayé celui-ci :

echo $format = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT).'<br/>';
                if($data['start_date'] != NULL )
                {
                    echo $data['start_date']."<br/>"; //01/27/12 correct date posted which i entered
                    $date = Mage::app()->getLocale()->date($data['start_date'], $format);
                    echo $date; ///Jan 26, 2012 4:00:00 PM but here we get back to one day
                    $time = $date->getTimestamp();
                    $model->setStartDate(Mage::getSingleton('core/date')->date(null, $time));

                    //$model->setStartDate($date->toString('YYYY-MM-dd HH:mm:ss'));
                }
                if($data['end_date'] != NULL)
                {
                    echo $data['end_date'].'<br/>';
                    $date1 = Mage::app()->getLocale()->date($data['end_date'], $format);

                    $time = $date1->getTimestamp();
                    $model->setEndDate(Mage::getSingleton('core/date')->date(null, $time));

                    //$model->setEndDate($date1->toString('YYYY-MM-dd HH:mm:ss'));
                }

$format échos : j/M/aa
d'origine date d'affichage : 01/27/12
$date echo résultat :Jan 26, 2012 4:00:00 PM

  • Avez-vous vérifié si les valeurs sont correctement présentées par le formulaire? Sont-ils corrects lorsque le programmateur d'action? Si pas, vous avez un problème côté client. Si elles sont correctement présentées: qu'est-ce qui echo date_default_timezone_get(); juste avant votre print_r donner?
  • son UTC quand je lui faisait écho 🙂
InformationsquelleAutor atif | 2012-01-25