Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2011, 13h02   #1
Membre du Club
 
Inscription : mars 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 110
Points : 50
Points : 50
Par défaut date mysql et affichage

Bonjour,

Je stocke le champ 'timeCheckin' sous forme de timestamp dans mysql.
Dans phpmyadmin, la date s'affiche correctement. ex:2011-01-10 12:36:43

J'ai une fonction qui convertie le timestamp mysql en timestamp unix:
Code php :
1
2
3
public function getTimeCheckinUnixFormat() {
        return strtotime('2011-01-10 12:36:43');
    }
Elle fonctionne bien.

Seulement je n'arrive pas récupérer le champ de la même façon qu'il s'affiche dans Mysql.

Voici le code de ma fonction qui va chercher les enregistrement en db:
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function fetchAllBy($search,$order) {
    $select = $this->getDbTable()->select()->order($order);
    foreach ($search as $key => $value)  {
        $select->where($key . ' = ?', $value);
    }
    $resultSet = $this->getDbTable()->fetchAll($select);
    $qs = array();
    foreach ($resultSet as $row) {
        $q = new Application_Model_UserAnswerQcm();
        $q->setId($row->id)
            ->setTimeCheckin($row->timeCheckin);
        $qs[] = $q;
    }
    return $qs;
}

Code php :
1
2
3
4
5
6
7
8
9
10
public function setTimeCheckin($int) {
        $this->_timeCheckin = (int) $int;
        return $this;
    }
    public function getTimeCheckin() {
        return $this->_timeCheckin;
    }
    public function getTimeCheckinUnixFormat() {
        return strtotime($this->_timeCheckin);
    }

Voilà les données récupérées:
<?php echo date('H:i:s d-m-Y', $userAnswer->getTimeCheckinUnixFormat()) ?>
=> 20:11:00 10-01-2011

<?php echo $userAnswer->getTimeCheckin() ?>
=> 2011

<?php echo $userAnswer->getTimeCheckinUnixFormat() ?>
=> 2011

Il semblerait que ma requête me renvoit 2011 peut importe la date stocké dans base alors que dans phpMyAdmin la date apparaît bien.

(il s'agit d'une colonne défini automatiquement par l'option Curent_Timestamp)
hackiles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 13h50   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Tu n'aurais pas plus facile avec la classe dateTime
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 15h29   #3
Membre du Club
 
Inscription : mars 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 110
Points : 50
Points : 50
Il fallait effectivement que je crée un objet dateTime dans mon "setter"

Voilà le code corrigé:
Code php :
1
2
3
4
    public function setTimeCheckin($dateMySql) {
        $this->_timeCheckin = strtotime($dateMySql);
        return $this;
    }
hackiles est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h51.


 
 
 
 
Partenaires

Hébergement Web